diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml new file mode 100644 index 00000000..1ef0c8c0 --- /dev/null +++ b/.github/workflows/checks.yml @@ -0,0 +1,18 @@ +# Tests, FeatureScript checks, and release files, before anything reaches Onshape (no API calls) +name: Checks + +on: + pull_request: + push: + branches: [main] + +jobs: + checks: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: astral-sh/setup-uv@v6 + - run: uv sync --locked + - run: uv run pytest -q + - run: uv run fs check + - run: uv run fs releases diff --git a/.github/workflows/onshape.yml b/.github/workflows/onshape.yml new file mode 100644 index 00000000..1255f7c0 --- /dev/null +++ b/.github/workflows/onshape.yml @@ -0,0 +1,53 @@ +# Lands main in the backend's main workspace by merging, makes the releases it asks for in releases/, and deletes the +# workspaces of branches gone from origin (see docs/fs-cli.md#branches). Spends the API allocation of the account whose +# keys are in the ONSHAPE_ACCESS_KEY and ONSHAPE_SECRET_KEY secrets. +name: Onshape + +on: + push: + branches: [main] + workflow_dispatch: + +# One at a time, so two merges can't both version a document +concurrency: + group: onshape + cancel-in-progress: false + +permissions: + # To commit what releases record, and push their tags + contents: write + # To find the pull request a commit merged + pull-requests: read + +jobs: + onshape: + runs-on: ubuntu-latest + env: + API_ACCESS_KEY: ${{ secrets.ONSHAPE_ACCESS_KEY }} + API_SECRET_KEY: ${{ secrets.ONSHAPE_SECRET_KEY }} + FS_BRANCH: main + GH_TOKEN: ${{ github.token }} + steps: + - uses: actions/checkout@v4 + with: + # fs recognizes Onshape's code in git history + fetch-depth: 0 + - uses: astral-sh/setup-uv@v6 + - run: uv sync --locked + - run: uv run pytest -q + - run: uv run fs check + - name: Configure git + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + - name: Land main in Onshape + run: | + # The pull request this commit merged, whose branch's workspace is landed; none for a direct push + branch=$(gh pr list --state merged --search "${{ github.sha }}" --json headRefName --jq '.[0].headRefName // empty') + uv run fs sync-main ${branch:+--branch "$branch"} + - name: Make the releases asked for + run: uv run fs run-releases + - name: Push what landing and releasing committed + run: git push origin HEAD:main + - name: Delete the workspaces of branches gone from origin + run: uv run fs branches --prune --yes diff --git a/.gitignore b/.gitignore index 3a9fb347..63ea84ad 100644 --- a/.gitignore +++ b/.gitignore @@ -197,7 +197,7 @@ poetry.toml creds.json # fs CLI sync state (per machine) -.fs-state.json +.fs-state*.json .fs.lock # VS Code extension build output diff --git a/AGENTS.md b/AGENTS.md index 1a2e4810..780549c6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -3,6 +3,17 @@ See `docs/fs-cli.md` for how the `fs` CLI works, and `docs/featurescript-style.md` for how to write FeatureScript here (including selections, editing logic, and manipulator change functions). +## Onshape API calls + +Ask before anything that calls Onshape, and run it only once the user says yes, every time: the Onshape FeatureScript +MCP's tools, and every `fs` command that talks to Onshape (`push`, `pull`, `sync`, `release`, `parts`, `configuration`, +`deprecate`, `sync-versions`, `release-tags`, `sync-main`, `run-releases`, `branches`, `features`, `pull-std`, +`update-std`, `released --detect`, and the +rest). Each call spends the +user's Onshape API allocation, and a write to a released or library document can't be undone. Offline work needs no +asking: `fs gen`, `check`, `format`, `audit`, `ui`, `eval`, `table`, and `pytest`, which run against fakes. When the +user runs a command themselves, say exactly what to run. + `README.md` is for users: an overview of the repo, setup, and links. How the tools work, and anything else written for agents, goes in `docs/`, a skill, or here. @@ -30,6 +41,13 @@ before stating how FeatureScript or Onshape behaves, or adding a rule here or to For FeatureScript names, `fs doc NAME` shows a std or project symbol's signature and documentation, `fs refs NAME` where it's used, and `fs rename NAME NEW` renames it everywhere; `fs check --fix` fixes problems with one right answer. +FeatureScript-backed parts (FRCDesign's fasteners) are part sets, tried and released by `fs parts`, never `fs release`; +see `docs/parts.md`. + +Each git branch pushes to a backend workspace of its own; main reaches the main workspace only by `fs sync-main`, which +the Onshape workflow runs on merge, and releases are asked for in `releases/` files rather than run from a branch (see +`docs/fs-cli.md#branches`). + A "top level option" means a horizontal enum at the top of the feature (see `docs/featurescript-style.md`'s "Horizontal enums go at the top"). @@ -50,5 +68,9 @@ Never rename a released feature's constant (the name `defineFeature` is exported documents store it as the feature's type, and lose the feature if it changes. Rename its Feature Type Name and its file instead (see `docs/featurescript-style.md`'s "Released feature constants"). +FRCDesign's library fasteners' configured Part Studios are an exception too: FRCDesign inserts them with configurations of their +option ids, and recognizes the fasteners already in assemblies by them, so never rename or remove a released option +id (see `featurescripts/fasteners/fastenerTables.py`); add new ones. + The other exception is attributes, which other features and documents read back. When an attribute's format changes, either handle old attributes or report them as an error; either is fine. diff --git a/docs/cots-research.md b/docs/cots-research.md index fac1b1e8..2b923bf6 100644 --- a/docs/cots-research.md +++ b/docs/cots-research.md @@ -12,7 +12,7 @@ FRCDesign's public API (no sign-in, and no Onshape API calls): ``` uv run fs cots 'hex shaft' # FRC parts matching a regular expression, most used first -uv run fs cots 'channel|beam' -l ftc # the FTC library (-l mkcad for MKCad's) +uv run fs cots 'channel|beam' -l config # ConfigLib, FTC's library (-l mkcad for MKCad's) uv run fs cots 'hex shaft' -d # also each part's configuration usage, and part numbers with the options they're for uv run fs cots --days 90 -n 100 # the top 100 parts over the last 90 days ``` @@ -40,7 +40,7 @@ need. These work without signing in; `{date}`s are like `2026-01-31`: | `/search-db/library/{library}?v={version}` | The app's search index (a serialized MiniSearch index of part names, groups, and part numbers) | Others (`/build-status/library/{library}`, `/job-status/library/{library}`, and `/favorites/library/{library}`) need -signing in to Onshape. Libraries are `frc-design-lib`, `ftc-design-lib`, and `mkcad`. A part's page in the app, like +signing in to Onshape. Libraries are `frc-design-lib`, `config-lib`, and `mkcad`. A part's page in the app, like `https://app.frcdesign.org/app/library/frc-design-lib?part={insertable id}`, shows the options its configuration endpoint returns. It rejects Python's `urllib` (by its user agent), so use `requests` or `curl`. diff --git a/docs/fs-cli.md b/docs/fs-cli.md index 003d9014..bfea69ab 100644 --- a/docs/fs-cli.md +++ b/docs/fs-cli.md @@ -52,6 +52,9 @@ uv run fs push --dry-run # show what would be pushed uv run fs push --no-commit # push without committing ``` +A file is pushed after the files it imports that are pushed with it, naming the versions they were just given: +Onshape rewrites the import in a tab pushed before the tab it imports, which would leave the local file behind. + After pushing, `fs push` commits what it pushed (and the tabs it deleted) to git, as it now is in Onshape: imports by path resolved to element ids, import versions from Onshape, and `fs-studios.json` with any new tabs' ids. Nothing else is committed, even what's already staged, so the repo always has what each push sent. @@ -145,7 +148,8 @@ Deleting a file and running `fs push` (or `fs sync`) deletes its tab in Onshape, (`--yes` skips it). If the tab changed in Onshape since it was last synced, `fs push` asks first, as for files changed on both sides (`fs push --force` deletes it anyway), or if another file still imports it. `fs pull --force` restores a deleted file instead. Only deletions `fs` has seen are tracked: on a fresh clone, a tab with no file is just pulled. A tab deleted in Onshape is -recreated by `fs push` unless you delete the file. Onshape's list of tabs can lag behind a tab created seconds +recreated by `fs push` unless you delete the file. A recreated tab has a new id, so files importing its old one +must be pushed with it, and the push points them at the new tab; it refuses to make the tab while one isn't. Onshape's list of tabs can lag behind a tab created seconds before, so a tracked tab missing from it is listed again, then fetched to confirm it's gone (a 404, which doesn't count against the API limits); if it's still there, `fs` stops rather than recreating it. Released FeatureScripts are the exception: their tabs are never deleted or recreated (see [Releasing](#releasing)). @@ -182,6 +186,72 @@ count: So `fs status`, and `fs push` or `fs pull` with nothing to do, cost nothing: they only make the anonymous listings. Failed calls (like a 400) don't count. Commands that only read the repo (`fs check`, `fs gen`, and the others below) make no calls. +## Branches + +With `main_branch` set in `[tool.fs]` (robot-code's is `main`), each git branch works in a workspace of its own in the +backend document, and the main workspace holds only the main branch, changed by merging. So branches can't overwrite +each other's Feature Studios, and Onshape can protect the main workspace (a workspace protection rule of Merge). + +- On any other branch, `fs push` (and `sync`, `tabs`, `parts --test`, `parts --diagnose`, `update-std --push`) works in a + workspace named after the branch, which the first of them creates, branched from the main workspace's latest + version (Onshape branches only from versions). Commands which only read (`status`, `pull`, `diff`, ...) read the + main workspace until the branch has one. Its state, what each studio looked like when last synced, is + `.fs-state..json`, which starts as the main workspace's. +- A tab is the same tab, by element id, in every workspace. When a branch has a tab from git that its workspace lacks + (another branch added it, reached main, and this branch merged main in git), the next push first merges the main + workspace into the branch's, keeping the branch's code where both changed, so the tab keeps its id. +- On the main branch, writing is refused: changes reach the main workspace through `fs sync-main`, which the Onshape + workflow runs when something is merged into main. It merges the main workspace into the merged branch's workspace + (or into a new `sync ` one, for a branch without one), pushes main's files there over whatever it has + (git is what main holds), merges that into the main workspace, taking its tabs where both changed, and deletes it. + Run again after a failure, it finishes. +- Releasing (`release`, `parts --release`, `deprecate`, `sync-versions`, `release-tags`, `run-releases`) runs only on + the main branch, so what's released is what was merged. A part set's release to a target (`parts --release + --target`), to try it out, runs from any branch, versioning its workspace (see [docs/parts.md](parts.md)). +- `fs branches` lists the workspaces fs made (marked by their description), and `fs branches --prune` deletes those + whose branch is gone from origin. Workspaces made by hand are never deleted. + +A CI checkout may leave no branch checked out; `FS_BRANCH` names it. + +``` +uv run fs push # on a branch: its workspace, made on first use +uv run fs sync-main # on main: land it in the main workspace (the Onshape workflow runs this) +uv run fs branches --prune # delete the workspaces of branches gone from origin +``` + +### Release files + +A branch asks for a release by adding a file to `releases/`, reviewed with its code; `fs run-releases` makes it once +the branch is merged into main, after `fs sync-main`: + +```toml +# releases/frame-hubs.toml +script = "robotFrame" # a FeatureScript, as `fs release` takes it; or +part_set = "fasteners" # a part set, as `fs parts SET --release` takes it +bump = "minor" # major, minor, or patch +description = "Adds hubs" # internal, as --description +beta = false # FeatureScripts: to the beta document +publish = true # FeatureScripts: finalize it at once, and tag it (the default) +``` + +They run in name order. Each runs as `fs release` or `fs parts SET --release` would, then its file is deleted and what the +release recorded (`fs-studios.json`, a part set's locations and exports) is committed. Every version a release makes +ends its description with the file's name (`[releases/frame-hubs.toml]`), so a file whose release Onshape already has, +whole or partway, stops `fs run-releases` rather than releasing twice: check what it made, finish it by hand, and +delete the file. `fs releases` lists and checks the pending files without calling Onshape. + +### The Onshape workflow + +`.github/workflows/checks.yml` runs the tests, `fs check`, and `fs releases` on every pull request. +`.github/workflows/onshape.yml` runs on each push to main, one run at a time: the same checks, then `fs sync-main` +(with the merged pull request's branch), `fs run-releases`, a push of what they committed to main, and +`fs branches --prune`. It needs: + +- The secrets `ONSHAPE_ACCESS_KEY` and `ONSHAPE_SECRET_KEY`: API keys of an account with edit access to the backend, + frontend, and part set documents, whose allocation every run spends (about five calls a sync, plus one a studio + pushed, and a release's). +- Its commits pushed to main past branch protection: the workflow's `github-actions[bot]` allowed to bypass it. + ## Checking and navigating Conventions for writing FeatureScripts (UI state predicates, where horizontal enums go, and so on) are in @@ -293,6 +363,62 @@ sets `CONTENTS` to a list of items: parameters based on it (see `released/printAdapter/printAdapterProfiles.py`) - `Import`s of the studios the generated code uses, by path, e.g. `Import("core/sketchData.fs")` +A definition can also set `EXPORTS`, a map of file names to their text, for what reads its data outside Onshape; +`fs gen` writes each beside it (`fasteners/fastenerTables.py` writes `fasteners.gen.json`, the catalog +FRCDesignApp reads for its library fasteners). + +### Configured Part Studios + +A Part Studio can expose a feature through its configuration: an input per parameter (a List, or for a boolean a +checkbox or a `switch`, a List of `false` and `true`), each configuring that parameter, with a List's options shown +only for some combinations of the inputs before it (a lookup table, laid out as a configuration). A whole input can be +shown only for some combinations too; hidden, it's left out of `combinations()`, and keeps whatever value it was last +set to. A List of one option is fixed: it's left out of the configuration, and its parameter set to that option when +the feature's inserted. + +A `LookupTable` lays a table out by these rules, from what's made, each thing a combination of its inputs' options +(the fasteners' `SCREW_TABLE`, say, of vendor, size, head, finish, and length): + +- An input shows where more than one of its options is made with the choices shown before it, offering those, and is + hidden where only one is. An input never shown is fixed, as the nut's Vendor is (McMaster-Carr makes every nut). +- A condition names an input only where it shows: where it's hidden, Onshape and FRCDesign read its value + differently, so the options after it show by the choices before it alone. The studio checks this. +- The feature resolves a hidden input to the one option made there, whatever value its parameter holds, and builds + from what it resolved to (the fasteners' `resolveChoices`). +- A configuration is the choices it shows (`LookupTable.shown`), and what reads the studio outside Onshape lists one + record per configuration, holding those choices alone. +- Its default is shown wherever its input shows at the other inputs' defaults, and every option is controlled by a + rule (below). + +`ConfiguredStudio.problems()` checks the configuration as it's written against these rules and the shape Onshape takes +conditions in (below); `fs parts` refuses a set with any before it sends Onshape anything, and +`tests/featurescript/fasteners_manifest_test.py` checks the fasteners' studios as generated. When Onshape refuses a +configuration these allow, `fs parts SET --diagnose` finds which input's rules, and what it refused becomes a rule here. +A definition describes one as a `ConfiguredStudio` (see [`fs_cli/configured_studios.py`](../fs_cli/configured_studios.py)) +in its `STUDIOS`, and the feature's enums come from the same definition, so the two can't drift apart. The Part +Studios are built, not made by hand: a build finds each one's tab by name (`tab`, the studio's name capitalized by +default), creating it if it's missing, and deletes the feature a build inserted before: its configured parameters name +the configuration's inputs and options, and Onshape refuses a configuration that leaves them naming ones it no longer +has ("The change would result in the feature list becoming invalid"). It then replaces the configuration with the +definition's, which must keep the inputs' ids, inserts the feature from the Feature Studio in the same document as it +is now, with each input's default, and configures it. The configured feature keeps the namespaces +Onshape stored on insert, for it and each of its enums: a feature from a Feature Studio re-exporting another +document's (as a release's is) is stored under another namespace than it's inserted with, and Onshape refuses an +update naming any other, "Feature does not match". A refusal names the +step Onshape refused, and a feature that fails to regenerate in its default configuration stops the build. `fs parts` builds +them, for part sets (see [docs/parts.md](parts.md)). +Onshape takes a visibility condition only as its UI makes one, an AND of inputs each one of some values, and refuses +any other with a 409 ("The change would result in the feature list becoming invalid"). So the combinations which show +an option are factored by input, earliest first (or by `factor_first`), into such conditions, each a rule controlling +the options it shows: an option shows while a rule controlling it holds. As Onshape's UI does, a last rule shows the +rest always, since Onshape hides an option no rule controls. Onshape also refuses a List whose default is hidden while +the inputs before it are at theirs, as the studio checks. A List with none of its options shown is +hidden, so a List's own visibility is folded into its options'. A checkbox has no options, and shows by a single +condition, which the studio checks; one needing more is a `switch`. `fs parts SET --diagnose` finds a part of a +configuration Onshape refuses (see [docs/parts.md](parts.md)). `ConfiguredStudio.manifest()` gives the +configuration as Onshape answers it, for what reads it outside Onshape (FRCDesign parses its library fasteners' as it parses +any configuration). + Feature icons are generated the same way: a definition which sets `ICON` (an `fs_cli.icons.Icon`, drawn from shapely shapes) is written to the `.svg` of the same name, e.g. `released/lighten/robotLightenIcon.py` to `released/lighten/robotLightenIcon.svg`; `fs icons` saves a picture of icons side by side to compare them. See [docs/icons.md](icons.md). @@ -304,7 +430,8 @@ uv run fs gen # rewrite every .gen.fs file whose definition chang uv run fs push # push them ``` -Every `.py` file in `featurescripts/` is a definition. Generated files keep their `FeatureScript` version +Every `.py` file in `featurescripts/` is a definition. One configuring Part Studios from another definition's tables +sets `STUDIOS` (and `EXPORTS`) without `CONTENTS`, and writes no `.gen.fs` file (`fasteners/ftcFastenerTables.py`). Generated files keep their `FeatureScript` version (`fs update-std` changes it); new ones use the std version in `std/`. Tests fail if a checked-in `.gen.fs` file is out of date, or a profile isn't a closed loop. @@ -327,9 +454,10 @@ uv run fs release robotFrame --minor --dry-run # show the plan withou A release creates a version named e.g. `Robot frame - v1.3.0` in the backend document, then points the frontend studio of the same name at it (creating the studio if needed). Beta releases go to the separate -`frontend_beta` document instead, and the feature's name must contain "beta". The studio must be pushed and in -sync before it can be released, and `fs release` asks for confirmation since versions can't be deleted (`-y` -skips the prompt). +`frontend_beta` document instead, and the feature's name must contain "beta". A part set's FeatureScript +(`[tool.fs.parts]`) isn't released here but by `fs parts SET --release`, into its FRCDesignLib document with its Part +Studios; see [docs/parts.md](parts.md). The studio must be pushed and in sync before it can be released, and +`fs release` asks for confirmation since versions can't be deleted (`-y` skips the prompt). A release is final once its version is in the frontend document: with `--publish` (a quick release: the backend version, the frontend studio, then the frontend version), or later with `fs sync-versions`, which creates the frontend diff --git a/docs/ftc-fasteners.md b/docs/ftc-fasteners.md new file mode 100644 index 00000000..6a826b67 --- /dev/null +++ b/docs/ftc-fasteners.md @@ -0,0 +1,233 @@ +# FTC fasteners + +What the Screw, Nut, and Washer features need in order to offer FTC's hardware: goBILDA's M4 hardware and REV's +M3 hardware, with each part's dimensions measured from the vendor's own STEP model. The features generate +imperial sizes only (`fastenerTables.py`'s `SIZES`), so this is the catalog the metric sizes are built from. + +## What teams insert + +From ConfigLib, FTC's library in FRCDesign, over the last year (`fs cots 'screw|nut|washer' -l config -d`): + +| Part | Inserts | Options chosen | +| --- | --- | --- | +| Custom Screw | 3210 | M4 2940, M3 200, M5 38, M6 15, M2 11, M2.5 6 | +| — M4 head | 2799 | Socket 2109, button 561, countersunk 70, low profile 25 | +| — M3 head | 183 | Socket 110, button 48, 5 mm hex 17, low profile 3, countersunk 3 | +| — Material | 3210 | 18-8 stainless 3034 (its default), black oxide 176 | +| S - Nut (GB) | 337 | M4 nylock 299, M4 hex 35, M4 square 3, M4 hook 0 | +| Custom Nut | 333 | M4 241, M3 62, M6 13, M5 6; hex 329, square 4 | +| Custom Washer | 217 | M4 193, custom 15, M3 5, M5 3 | + +So the size and head default to an M4 socket head, an M4 nylock, and an M4 washer, from the first vendor, in its +cheapest finish (below). FTC's countersunk M4s are bought +elsewhere (ConfigLib's references are Amazon's), since neither goBILDA nor REV sells one. Screw lengths are typed, +so FRCDesign doesn't count them. + +## goBILDA: M4 x 0.7 + +Every screw is zinc-plated steel, and its length is measured under the head. Through 60 mm a screw is threaded +its whole length. The 75 mm socket head is threaded about 21 mm from the tip, which is ISO 4762's `b = 2d + 12`. + +| Part | Series | Lengths (mm) | +| --- | --- | --- | +| Socket head | 2800-0004-LLLL | 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 25, 30, 35, 40, 45, 50, 55, 60, 75 | +| Button head | 2802-0004-LLLL | 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 25, 30, 35, 40, 45, 50, 55, 60 | +| Low profile socket head | 2804-0004-LLLL | 5, 6, 22, 25, 30, 35, 45, 50, 55, 60 | +| Hex head | 2813-0004-LLLL | 8, 10, 12, 16 | +| M3 x 0.5 socket head | 2800-0003-LLLL | 6, 8, 10, 12 | + +goBILDA also sells thread-locking and thread-forming M4 socket heads, which are left out. + +| Head | Diameter | Height | Drive | +| --- | --- | --- | --- | +| Socket (M4) | 7.0 | 4.0 | 3.0 hex, 2.25 deep | +| Button | 7.6 | 2.2 | 2.5 hex | +| Low profile socket | 7.0 | 2.8 | 2.5 hex, 1.4 deep | +| Hex | 6.9 across flats | 2.8, of which a 6.15 mm washer face is 0.25 | — | +| Socket (M3) | 5.5 | 3.0 | 2.5 hex | + +| Nut | SKU | Across flats | Height | +| --- | --- | --- | --- | +| Nylock | 2812-0004-0007 | 7.0 | 4.85: a 4.04 hex under the dome; nylon insert 4.37 across | +| Hex | 2811-0004-0007 | 7.0 | 2.75 | +| Square | 2803-0007-0007 | 7.0 | 3.0 | + +| Washer | SKU | Inner | Outer | Thickness | +| --- | --- | --- | --- | --- | +| Flat, 8 mm | 2801-0004-0008 | 4.0 | 8.0 | 1.0 | +| Flat, 11 mm | 2801-0004-0011 | 4.15 | 10.9 | 1.5 | + +## REV: M3 x 0.5 + +Zinc-plated steel. A hex cap screw's length is measured under the head. + +| Part | SKU | Length (mm) | +| --- | --- | --- | +| Hex cap screw | REV-41-1713 | 6 | +| Hex cap screw | REV-41-1359 | 8 | +| Hex cap screw | REV-41-1123 | 10 | +| Hex cap screw | REV-41-1360 | 16 | +| Hex cap screw | REV-41-1124 | 20 | +| Hex cap screw | REV-41-1715 | 25 | +| Hex cap screw | REV-41-1125 | 35 | + +| Part | Dimensions | +| --- | --- | +| Hex cap head | 5.5 across flats, 2.0 tall, a 120° chamfer on top | +| Nyloc nut, REV-41-1361 | 5.5 across flats, 4.0 tall: a 3.33 hex, then a 3.35 collar; nylon insert 3.35 across. REV's product page says 4.4, but its drawing and model say 4.0 | +| Hex nut, REV-41-1126 | 5.5 across flats, 2.4 tall, from REV's drawing; it has no model | +| Washer, REV-41-2886 | Stainless steel, $6.50 a 100. REV publishes no dimensions, model or drawing, so it's taken as a standard M3 washer (ISO 7089: 3.2 bore, 7 outside, 0.5 thick) | + +REV's UltraPlanetary hardware pack (REV-41-1609) has M3 button heads, which REV doesn't sell on their own; they're +left out. + +## AndyMark: M3 and M4 + +From AndyMark's store (`andymark.com/products.json`, the list `fastenerTables.py fetch` already reads for its +imperial screws). Zinc-plated steel unless a row says otherwise; lengths are under the head. AndyMark publishes no +models for these, so they take the standard's nominal dimensions (ISO 4762, ISO 7380, ISO 10642). + +| Part | Lengths (mm), SKU | +| --- | --- | +| M4 socket head, 3 mm hex | 5 am-1343, 10 am-1264, 25 am-1532, 30 am-1533, 40 am-1422, 50 am-1401, 55 am-1251 (black oxide) | +| M4 button head, 2.5 mm hex | 35 am-1441 (black oxide) | +| M4 flat head | 8 am-1788, 12 am-1789: Phillips drive, so left out (ConfigLib's countersunk M4s are hex drive) | +| M3 socket head, 2.5 mm hex | 6 am-1254, 10 am-1021, 14 am-1367, 30 am-1578, 35 am-1671, 45 am-1659 (stainless), 55 am-1379 (stainless) | +| M3 socket head, thread lock patch | 5 am-1675, 8 am-1500, 12 am-1706 (14 am-1750 has a plain twin) | +| M3 flat head, 2 mm hex | 8 am-1723, 12 am-1765; 5 am-1724 with a thread lock patch | + +| Part | SKU | Dimensions | +| --- | --- | --- | +| M4 nylock nut | am-1435 | 5.0 tall | +| M3 nylock nut | am-1023 | Not stated | +| M3 hex nut | am-1386 | 2.4 tall | +| M3 jam nut | am-1405 | 1.8 tall | + +AndyMark sells no metric flat washer for M3 or M4. + +Lock washers are left out, goBILDA's split and tooth ones and AndyMark's split ones alike: a nylock or thread +locker does the job on an FTC robot. + +## Vendors and finishes + +Prices only order a vendor's finishes and pick which of McMaster-Carr's supplies a length's part number comes from; +no price goes into a part's records, which carry its name, part number, vendor and link, as the FRC fasteners' do. + +Vendors are listed Generic, McMaster-Carr, goBILDA, REV, AndyMark, and a part defaults to the first that sells it. +goBILDA would go ahead of McMaster-Carr only if it were cheaper across the board, and it isn't: McMaster-Carr's +screws and nuts cost less a piece, smallest pack to smallest pack. + +| Part | McMaster-Carr | goBILDA | +| --- | --- | --- | +| M4 x 10 socket head | $0.103 (100) | $0.136 (25), $0.068 (250) | +| M4 nylock | $0.049 (100) | $0.120 (25), $0.060 (250) | +| M4 hex nut | $0.034 (100) | $0.100 (25) | +| M4 flat washer | $0.031 (100) | $0.080 (25), $0.040 (250) | + +Generic is a screw in every size, head and length any vendor sells, a washer in each size, and a hex nut and a nylock +in each size, as McMaster-Carr's are, each in one finish. FRC's nuts have no Generic: McMaster-Carr makes every one. + +Each studio lists its finishes cheapest first, so the default is never a dearer finish for its own sake: by price per +piece in the smallest pack, what a team orders first. A configuration lists an input's options once, not per part, so +it's one order per studio, from what's typical: stainless first for screws (McMaster-Carr's cheapest socket and +button heads, and its widest range), then zinc plated, then black; zinc plated first for nuts and washers. The +finishes are the catalog's own: zinc plated, black (black oxide), and stainless (18-8). Where a vendor sells a finish +at several strengths, a steel nut is McMaster-Carr's Class 8, medium strength. McMaster-Carr's unfinished steel, +zinc-yellow chromate, black coated and 316 stainless are left out, unfinished steel although it's the cheapest nut, +since it rusts. + +| Part | McMaster-Carr, cheapest first | +| --- | --- | +| M3 nylock | Zinc plated $0.049, stainless $0.069 | +| M4 nylock | Zinc plated $0.049, stainless $0.070, black $0.60 (black-oxide 18-8, 10 pack) | +| M3 hex nut | Zinc plated $0.031, stainless $0.057, black $0.081 (black-oxide 18-8) | +| M4 hex nut | Zinc plated $0.034, stainless $0.073, black $0.121 (black-oxide 18-8) | +| M3 socket head | Stainless (23 lengths), black (22), zinc plated (7) | +| M4 socket head | Stainless (27 lengths), zinc plated (11), black (32) | +| M3 button head | Stainless (20 lengths), black (10), zinc plated (9) | +| M4 button head | Stainless (23 lengths), black (12), zinc plated (11) | +| M3 flat washer | Stainless $0.029, zinc plated $0.030, black $0.039 (black-oxide 18-8) | +| M4 flat washer | Zinc plated $0.031, black $0.036 (black-oxide steel), stainless $0.039 | +| M3 flat head | Black (13 lengths), stainless (18), zinc plated (11) | +| M4 flat head | Black (15 lengths), zinc plated (13), stainless (21) | + +McMaster-Carr's 18-8 socket heads cost no more than its zinc-plated ones at the lengths both sell: an M3 x 10 is +$0.071 stainless to $0.171 zinc plated, and an M4 is within two cents from 5 to 20 mm (an M4 x 10 is $0.103 +either way). Zinc +plating comes in 7 M3 lengths and 11 M4, so stainless is the screws' default, as it is ConfigLib's. Black oxide is +last at M4, one to ten cents dearer from 5 to 20 mm; beyond 25 mm it's often cheaper, but those are seldom used. +Its 18-8 button heads are the cheapest at M3 and at the M4 lengths used most (an M4 x 10 is $0.094, to $0.141 +black and $0.178 zinc plated), and come in twice the lengths, so stainless goes first for them too. Its flat heads +are the other way about: black oxide is the cheapest at every length from 6 to 20 mm, an M4 x 10 $0.064 to $0.083 +zinc plated and $0.105 stainless, so black goes first. +A black nut is black-oxide 18-8 stainless, which McMaster-Carr sells for less than black-oxide steel. + +## McMaster-Carr + +McMaster-Carr's pages refuse automated reads, so its part numbers come from you (below), not a fetch. Each table +lists a size's lengths with up to four supplies, each its own part number and price: a small pack imported, a small +pack of United States origin, and a large pack of each. The catalog takes, for each length, the cheaper small pack, +imported or United States origin; a large pack only where there's no small one. The series to take them from, with the few numbers search results confirm: + +| Part | Series | Confirmed | +| --- | --- | --- | +| Socket head, 18-8 stainless | 91292A, 90751A | In the snapshot | +| Socket head, black-oxide alloy steel | 91290A | In the snapshot | +| Button head | 92095A 18-8, 91239A black oxide, 91306A zinc plated | In the snapshot | +| Flat head, 18-8 stainless | 92125A | — | +| Socket head, zinc-plated alloy steel | 90128A, 95263A | In the snapshot | +| Nylon-insert locknut | 90576A zinc plated, 93625A 18-8 | In the snapshot | +| Hex nut | 90591A zinc plated, 91828A 18-8, 98676A black-oxide 18-8 | In the snapshot | +| Flat washer, 18-8 stainless | 93475A | — | + +The rows the catalog uses are in `featurescripts/fasteners/vendor/mcmaster-metric.json`: every length of the socket +heads (zinc-plated and black-oxide alloy steel, class 12.9) button heads and flat heads (the same, 120,000 psi; +the zinc-plated flat heads' 170,000 psi rows are left out), each also in 18-8 stainless, with each supply, and the nylocks +and hex nuts in the three finishes, Class 8 where steel. Its nylocks are DIN 985, an M3 5.5 wide and 4 tall, an M4 +7 wide and 5 tall (goBILDA's is 4.85); its hex nuts DIN 934, an M3 5.5 wide and 2.4 tall, an M4 7 wide and 3.2 +tall (goBILDA's is 2.75). Socket heads are fully threaded to 20 mm (M3) or 25 mm (M4), then partly; where a length +comes both ways, partly threaded is the standard and fully threaded a variant, as McMaster-Carr's FRC screws are. +Its button heads are ISO 7380, an M3 5.7 across and 1.65 tall on a 2 mm hex, an M4 7.6 and 2.2 on a 2.5 mm hex, as +goBILDA's; its flat heads ISO 10642, an M3 6 across and 1.7 tall on a 2 mm hex, an M4 8 and 2.3 on a 2.5 mm hex, in +a 90° countersink, their length including the head; its socket heads ISO 4762, with a knurled head. Measured from +its models of 91290A119, 92095A196, 92095A475 and 92125A202, which agree with its tables; the M3 flat head's drive is +ISO 10642's. Its washers are general purpose ones, an M3 3.2 across the bore, 7 outside and ISO 7089's 0.5 thick +(its table says 0.4 to 0.6), an M4 4.3, 9 and 0.9 (0.7 to 0.9), with the three finishes' supplies; a black washer is +whichever black costs less, black-oxide 18-8 at M3 and black-oxide steel at M4. Its M4 hex nut is 3.2 tall with a 30° chamfer each side, and its M4 nylock a 4.17 hex under a dome +to 5.0, with a nylon insert 5.05 across, measured from its models of 90591A255, 94645A101 and 91166A230; 94645A101 is the +Class 10 nylock, which its table gives the Class 8's 7 by 5. + +## How they're built + +They're FRC's Screw, Nut, and Washer features and tables, in Part Studios of their own: the `ftcFasteners` part set, +which `featurescripts/fasteners/ftcFastenerTables.py` configures from `fastenerTables.py`'s `FTC` catalog, and which is +released into ConfigLib's document (see docs/parts.md). Each set's studios offer its own sizes alone. What the +catalog needed beside FRC's: + +- Metric sizes (`MetricSize`), from std's ISO hole and thread tables, and lengths in millimeters (`Millimeters`). +- Hex heads (REV's hex caps, goBILDA's hex heads). REV's T-slot screw (REV-41-1907) is left out: ConfigLib has none, + and its only hex head option, 5 mm hex on M3 (17 of 183 M3 inserts), is REV's hex cap. Low profile + socket heads are left out: 25 of ConfigLib's 2,799 M4 inserts, a button head is lower anyway (2.2 mm to 2.8 at M4, + on the same 2.5 mm hex), and goBILDA sells them in 10 lengths. +- Flat heads in a 90° countersink (ISO 10642), where FRC's are 82°. +- A socket head's threads run 2D + 12 mm from its tip (ISO 4762), and a part its vendor sells threaded its whole + length is threaded so. +- Nuts in finishes, by vendor, with each vendor's own dimensions; FRC's come in zinc plating alone, so their + configuration doesn't ask. +- goBILDA as a vendor, and AndyMark's metric screws, whose titles (`M4-0.7 x 10 mm Socket Head Cap Screw`) leave out + their black and stainless finishes, from its store. + +## STEP files + +Downloaded from the vendors and measured above (goBILDA at `https://www.gobilda.com/content/step_files/.zip`, +REV at `https://www.revrobotics.com/content/cad/.STEP`): goBILDA 2800-0003-0008, 2800-0004-0008/0040/0045/ +0050/0055/0060/0075, 2802-0004-0008/0040/0060, 2804-0004-0006/0030/0060, 2813-0004-0008, 2811-0004-0007, +2812-0004-0007, 2803-0007-0007, 2801-0004-0008, 2801-0004-0011, 2809-0004-0007, 2810-0004-0008; REV +REV-41-1713, 1359, 1123, 1360, 1124, 1715, 1125, and 1361. + +From you, McMaster-Carr's 91290A119 (M3 x 14 socket head), 92095A196 (M4 x 20 button head), 92095A475 (M3 x 50 +button head), 92125A202 (M4 x 25 flat head), 90591A255 (M4 hex nut), 94645A101 (M4 nylock) and 91166A230 (M4 +washer). + +REV's M3 hex nut, which it publishes a drawing of but no model, takes the shape of McMaster-Carr's: both are DIN 934, +5.5 across the flats and 2.4 tall. diff --git a/docs/parts.md b/docs/parts.md new file mode 100644 index 00000000..bcbe67d7 --- /dev/null +++ b/docs/parts.md @@ -0,0 +1,124 @@ +# Part sets + +A part set is a family of FeatureScript-backed parts, like FRCDesign's fasteners: Part Studios whose only feature is +one of the set's, each configured by a definition so that every configuration is one part. They're released into +FRCDesignLib's own documents, where people insert them from FRCDesign, so they're kept apart from the user-facing +FeatureScript `fs release` publishes, with their own commands and versions. + +Their FeatureScript lives in the backend document like any other, so `fs push`, `fs check`, the language server, the +evaluator, and imports of `core/` all work as usual. + +## Declaring one + +```toml +[tool.fs.parts.fasteners] +title = "Fasteners" # its versions' names: "Fasteners - v1.2.0" +folder = "fasteners" # in featurescripts/: its FeatureScript and definition +main = "https://cad.onshape.com/documents/77461d97ef7c9d816f0c7351" # the FRCDesignLib document it's released into + +[tool.fs.parts.fasteners.targets] # other documents to release it to, to try it out (optional) +local = "https://cad.onshape.com/documents/..." +``` + +Two sets can share a folder, its Feature Studio and its tables, each configuring its own Part Studios for its own +main document: FRC's fasteners and FTC's (`ftcFasteners`, released into ConfigLib's document) build the same features, +each offering its own sizes. Each then names its definition, since a set otherwise takes every definition in its folder: + +```toml +[tool.fs.parts.ftcFasteners] +title = "FTC Fasteners" +folder = "fasteners" +definition = "ftcFastenerTables.py" # the file in the folder configuring its Part Studios +main = "https://cad.onshape.com/documents/..." +``` + +``` +uv run fs parts fasteners --test # build its Part Studios in your branch's workspace +uv run fs parts fasteners --diagnose # find what Onshape refuses in a configuration +uv run fs parts fasteners --release --minor # release it to its main document (on main) +uv run fs parts fasteners --release --target local # release it to a target, to try it out (any branch) +uv run fs configuration # print a Part Studio's configuration as Onshape stores it +uv run fs features # print its features as Onshape stores them, namespaces and all +``` + +The folder holds: + +- One Feature Studio defining every feature the set's Part Studios use (`fasteners/fasteners.fs`), and whatever it + imports. +- A definition (`fasteners/fastenerTables.py`, see [fs-cli.md](fs-cli.md#generating-lookup-tables)), or one per set + sharing the folder (`fasteners/ftcFastenerTables.py`, which configures FTC's studios from `fastenerTables.py`'s + tables and writes no Feature Studio of its own), whose `STUDIOS` + holds a `ConfiguredStudio` per Part Studio (see [Configured Part Studios](fs-cli.md#configured-part-studios)): its + tab's name, its feature, and its configuration's inputs. Its `EXPORTS` write what reads the set outside Onshape + (FRCDesignApp's manifest, `fasteners.gen.json`), including where each Part Studio was last released. + +## Trying a change + +Push it, then build the set's test Part Studios in the backend document: + +``` +uv run fs push featurescripts/fasteners +uv run fs parts fasteners --test +``` + +They're built in the branch's own workspace (see [Branches](fs-cli.md#branches)), so branches don't build over each +other's. Each Part Studio is built as ` (TEST)`, e.g. `Screw (TEST)`, from the Feature Studio as pushed: its tab found by +name or created, the feature a build inserted before deleted, its configuration written, and its feature inserted from +the Feature Studio as it is now and configured. Before any of it, the set's configurations are checked offline against +their rules (see [Configured Part Studios](fs-cli.md#configured-part-studios)). It refuses while the set's FeatureScripts +aren't in sync with the backend document, and first writes any import versions Onshape changed since into the local +files, as `fs pull` does: Onshape has refused to configure a feature from a Feature Studio whose local file lagged. It prints each one's url, to check in Onshape. A feature that fails to regenerate in its default +configuration stops the build. Nothing is versioned or recorded, so try as often as needed. + +When Onshape refuses a configuration, `uv run fs parts fasteners --diagnose` finds which part. It writes each studio's +configuration in stages to a scratch ` (DIAGNOSE)` Part Studio: none, the inputs with no conditions, then each +input's conditions in turn, all its option rules together, since one alone could hide its default, which Onshape +refuses. It prints each stage Onshape accepted, +the first it refused with Onshape's error, and the features in the studio's `(TEST)` tab, stopping at the first refusal: +a call per stage, about ten for the screw. Delete the scratch tabs after. + +## Releasing + +``` +uv run fs parts fasteners --release --minor --dry-run # the plan; a few read calls +uv run fs parts fasteners --release --minor -d "Added zinc screws" +``` + +A release: + +1. Creates a version named e.g. `Fasteners - v1.2.0` in the backend document. +2. Points the main document's Feature Studio of the same name (`fasteners.fs`) at that version, creating it if needed: + a small generated studio re-exporting the backend's, as the frontend's are. +3. Builds each Part Studio in the main document, by its tab's name (`Screw`), from that studio as just pushed, and + writes the set's manifest beside them as a file tab, `fasteners.parts.json`: the definition's manifest export with + each studio's tab there (`elementId`) in place of where it was last released. A studio whose feature makes a mate + connector names the id it gives it (`mateConnector`, from `ConfiguredStudio.mate_connector`): a fasten mate names + the connector `.mateConnector`, and Onshape's API shows no mate connector a feature makes, so this is how + FRCDesignApp fastens to one, in that studio or any Part Studio using the feature. FRCDesignApp reads it when it loads + the document's version, so the records it indexes are always those of the version it loads. +4. Records where the Part Studios are in `.studios.json` beside the definition (the main document and + each tab), writes the definition's `EXPORTS` again, and tags the release in git (`fasteners/v1.2.0`). + +It leaves the main document unversioned: its owner versions it in Onshape once they've checked the Part Studios, and +FRCDesignApp loads that version (or holds it for approval). Releases are numbered by the backend document's versions. + +Every studio in the set's folder must be pushed and in sync first. Versions can't be deleted, so it asks for +confirmation (`-y` skips it). A feature that fails to regenerate stops the release before anything is recorded; the +backend version stays, so the next try takes the next version number. + +A release runs on the main branch only. Ask for one in a release file (`part_set = "fasteners"`; see +[Release files](fs-cli.md#release-files)), which the Onshape workflow makes once its branch is merged, committing the +recorded locations and exports; run by hand, commit them yourself. FRCDesignApp's library reads the released manifest +itself, and Auto Assembly reads the catalog the library stored from it, so a release needs no change there. + +### Releasing to a target + +`--target` releases to another document, one named in `[tool.fs.parts..targets]` or any document's url, from any +branch: to load a set into a local FRCDesignApp, say, before releasing it. It does steps 1 to 3 to that document, then +versions it, so FRCDesignApp can load it; the versions are named for the branch and commit (`Fasteners test - my-branch 1a2b3c4`), not numbered, and nothing +is recorded, marked released, or tagged: the main document and the next release's number are untouched. Its backend +version is made from the branch's workspace. Versions can't be deleted, so each try leaves one in the backend +document and one in the target. + +`fs release` refuses a part set's FeatureScript, and `fs sync-versions` leaves its backend versions out: they're never +the frontend's. diff --git a/featurescripts/chain/robotChain.fs b/featurescripts/chain/robotChain.fs index 3ee8ba81..0f7a7c44 100644 --- a/featurescripts/chain/robotChain.fs +++ b/featurescripts/chain/robotChain.fs @@ -8,7 +8,7 @@ export import(path : "948c83c1b1ac83de4ccf921b", version : "5bd77bd9ef3230343bfb export import(path : "b82468283e5ec09720bad185", version : "142c41c73cc2f8336c28931e"); import(path : "70d403fe3ae377ef6f571c77", version : "37b69791ddfa580f964f8216"); import(path : "6c65805103086c85362ee4b7", version : "c8ae72bd99ee1f581e10e759"); -import(path : "0794d10863d10d98a88c2ab4", version : "4f09b23b6e418ecb226e90c1"); +import(path : "0794d10863d10d98a88c2ab4", version : "ee89dca8b88ae07af559109e"); // Exports ChainType and SprocketType, parameter types export import(path : "93af3f24abb0f9f345268c81", version : "96e431e9857c4c335cdb3eb1"); diff --git a/featurescripts/chain/robotSprocket.fs b/featurescripts/chain/robotSprocket.fs index 596f333d..aec24c3e 100644 --- a/featurescripts/chain/robotSprocket.fs +++ b/featurescripts/chain/robotSprocket.fs @@ -6,7 +6,7 @@ export import(path : "948c83c1b1ac83de4ccf921b", version : "5bd77bd9ef3230343bfb export import(path : "b82468283e5ec09720bad185", version : "142c41c73cc2f8336c28931e"); import(path : "0195d390c3944cd4fab21ce0", version : "82243acdb77d04d0ca39cd49"); import(path : "6c65805103086c85362ee4b7", version : "c8ae72bd99ee1f581e10e759"); -import(path : "0794d10863d10d98a88c2ab4", version : "4f09b23b6e418ecb226e90c1"); +import(path : "0794d10863d10d98a88c2ab4", version : "ee89dca8b88ae07af559109e"); import(path : "0103ad63394d7713fbf44448", version : "5f7d67b62160df309da69ec3"); // Exports BoreShape, Fit, and SplineType, parameter types export import(path : "01f0c5634015659514b83da1", version : "2e33b7669ec63ae45dfedbfc"); diff --git a/featurescripts/color/robotColor.fs b/featurescripts/color/robotColor.fs new file mode 100644 index 00000000..b1e40bf5 --- /dev/null +++ b/featurescripts/color/robotColor.fs @@ -0,0 +1,271 @@ +FeatureScript 2960; +import(path : "onshape/std/common.fs", version : "2960.0"); + +import(path : "6c65805103086c85362ee4b7", version : "c8ae72bd99ee1f581e10e759"); + +export enum ColorScope +{ + annotation { "Name" : "Selected" } + SELECTED, + annotation { "Name" : "All" } + ALL +} + +/** + * FRCDesign's standard colors, as FRCDesignLib's color standards list them, in their order. + */ +export enum StandardColor +{ + annotation { "Name" : "General white (#FFFFFF)" } + GENERAL_WHITE, + annotation { "Name" : "Light grey (#E6E6E6)" } + LIGHT_GREY, + annotation { "Name" : "Medium grey (#C6C6C6)" } + MEDIUM_GREY, + annotation { "Name" : "Steel & neodymium grey (#B3B3B3)" } + STEEL_GREY, + annotation { "Name" : "Lighter black (#404040)" } + LIGHTER_BLACK, + annotation { "Name" : "General black (#373737)" } + GENERAL_BLACK, + annotation { "Name" : "Dark black (#191919)" } + DARK_BLACK, + annotation { "Name" : "Clear polycarbonate (#E6E6E6, 80% opaque)" } + CLEAR_POLYCARBONATE, + annotation { "Name" : "Smoked polycarbonate grey (#404040, 80% opaque)" } + SMOKED_POLYCARBONATE, + annotation { "Name" : "Machined brass yellow (#FDE086)" } + MACHINED_BRASS_YELLOW, + annotation { "Name" : "Brass yellow (#F6D681)" } + BRASS_YELLOW, + annotation { "Name" : "Brass/gold (#FFC10E)" } + BRASS_GOLD, + annotation { "Name" : "Dark yellow (#D7A01E)" } + DARK_YELLOW, + annotation { "Name" : "REV orange (#FE8B00)" } + REV_ORANGE, + annotation { "Name" : "Red (#C90202)" } + RED, + annotation { "Name" : "Dark red (#B11919)" } + DARK_RED, + annotation { "Name" : "PCB green (#008000)" } + PCB_GREEN, + annotation { "Name" : "Copper (#FCBC84)" } + COPPER, + annotation { "Name" : "Bearing recess (#CAC1A4)" } + BEARING_RECESS, + annotation { "Name" : "CAN high (#FFD80E)" } + CAN_HIGH, + annotation { "Name" : "CAN low (#59B031)" } + CAN_LOW, + annotation { "Name" : "Blue nitrile (#2D5DC5)" } + BLUE_NITRILE, + annotation { "Name" : "Limelight camera lens (#48473D)" } + LIMELIGHT_LENS, + annotation { "Name" : "Robot status light (#F88701)" } + STATUS_LIGHT, + annotation { "Name" : "Slightly yellowed plastic (#FDFBE0)" } + YELLOWED_PLASTIC, + annotation { "Name" : "WCP aluminum gears (#DFD4B6)" } + WCP_ALUMINUM_GEARS, + annotation { "Name" : "RedLine body (#CFDBE5)" } + REDLINE_BODY, + annotation { "Name" : "AndyMark aluminum gears (#A69E96)" } + ANDYMARK_ALUMINUM_GEARS, + annotation { "Name" : "Zinc-coated steel (nuts) (#E1E7EC)" } + ZINC_COATED_STEEL, + annotation { "Name" : "Dark grey (#787880)" } + DARK_GREY, + annotation { "Name" : "Aluminum gears (#DED3B5)" } + ALUMINUM_GEARS, + annotation { "Name" : "Wedgetop tread (#EDC57F)" } + WEDGETOP_TREAD, + annotation { "Name" : "Bronze bushings (#EBCDA6)" } + BRONZE_BUSHINGS, + annotation { "Name" : "Brass pneumatics (#CFA650)" } + BRASS_PNEUMATICS +} + +export const STANDARD_COLORS = { + StandardColor.GENERAL_WHITE : hexColor("#FFFFFF"), + StandardColor.LIGHT_GREY : hexColor("#E6E6E6"), + StandardColor.MEDIUM_GREY : hexColor("#C6C6C6"), + StandardColor.STEEL_GREY : hexColor("#B3B3B3"), + StandardColor.LIGHTER_BLACK : hexColor("#404040"), + StandardColor.GENERAL_BLACK : hexColor("#373737"), + StandardColor.DARK_BLACK : hexColor("#191919"), + StandardColor.CLEAR_POLYCARBONATE : translucent(hexColor("#E6E6E6"), 0.8), + StandardColor.SMOKED_POLYCARBONATE : translucent(hexColor("#404040"), 0.8), + StandardColor.MACHINED_BRASS_YELLOW : hexColor("#FDE086"), + StandardColor.BRASS_YELLOW : hexColor("#F6D681"), + StandardColor.BRASS_GOLD : hexColor("#FFC10E"), + StandardColor.DARK_YELLOW : hexColor("#D7A01E"), + StandardColor.REV_ORANGE : hexColor("#FE8B00"), + StandardColor.RED : hexColor("#C90202"), + StandardColor.DARK_RED : hexColor("#B11919"), + StandardColor.PCB_GREEN : hexColor("#008000"), + StandardColor.COPPER : hexColor("#FCBC84"), + StandardColor.BEARING_RECESS : hexColor("#CAC1A4"), + StandardColor.CAN_HIGH : hexColor("#FFD80E"), + StandardColor.CAN_LOW : hexColor("#59B031"), + StandardColor.BLUE_NITRILE : hexColor("#2D5DC5"), + StandardColor.LIMELIGHT_LENS : hexColor("#48473D"), + StandardColor.STATUS_LIGHT : hexColor("#F88701"), + StandardColor.YELLOWED_PLASTIC : hexColor("#FDFBE0"), + StandardColor.WCP_ALUMINUM_GEARS : hexColor("#DFD4B6"), + StandardColor.REDLINE_BODY : hexColor("#CFDBE5"), + StandardColor.ANDYMARK_ALUMINUM_GEARS : hexColor("#A69E96"), + StandardColor.ZINC_COATED_STEEL : hexColor("#E1E7EC"), + StandardColor.DARK_GREY : hexColor("#787880"), + StandardColor.ALUMINUM_GEARS : hexColor("#DED3B5"), + StandardColor.WEDGETOP_TREAD : hexColor("#EDC57F"), + StandardColor.BRONZE_BUSHINGS : hexColor("#EBCDA6"), + StandardColor.BRASS_PNEUMATICS : hexColor("#CFA650") + }; + +annotation { "Feature Type Name" : "Robot color", + "Feature Type Description" : "Give parts one of FRCDesign's standard appearances, or any color by hex code or RGB." ~ CREDIT, + "Icon" : RobotIcon::BLOB_DATA } +export const robotColor = defineFeature(function(context is Context, id is Id, definition is map) + precondition + { + annotation { "Name" : "Parts", "UIHint" : ["HORIZONTAL_ENUM", "REMEMBER_PREVIOUS_VALUE"] } + definition.scope is ColorScope; + + if (colorsSelectedParts(definition)) + { + annotation { "Name" : "Parts to color", "Filter" : EntityType.BODY && BodyType.SOLID && ModifiableEntityOnly.YES } + definition.parts is Query; + } + + annotation { "Name" : "Custom color", "UIHint" : ["REMEMBER_PREVIOUS_VALUE"] } + definition.customColor is boolean; + + if (definition.customColor) + { + annotation { "Name" : "Color", "Default" : "#373737", "UIHint" : ["REMEMBER_PREVIOUS_VALUE"], + "Description" : "A hex code, like #373737 or #FFF, or RGB from 0 to 255, like 55, 55, 55." } + definition.color is string; + } + else + { + annotation { "Name" : "Standard color", "Default" : StandardColor.GENERAL_BLACK, "UIHint" : ["REMEMBER_PREVIOUS_VALUE"] } + definition.standardColor is StandardColor; + } + } + { + const parts = colorsSelectedParts(definition) ? definition.parts : qAllModifiableSolidBodies(); + if (isQueryEmpty(context, parts)) + { + if (colorsSelectedParts(definition)) + { + throw regenError("Select parts to color.", ["parts"]); + } + reportFeatureInfo(context, id, "There are no parts to color."); + return; + } + setProperty(context, { "entities" : parts, "propertyType" : PropertyType.APPEARANCE, "value" : chosenColor(definition) }); + }); + +predicate colorsSelectedParts(definition is map) +{ + definition.scope == ColorScope.SELECTED; +} + +function chosenColor(definition is map) returns Color +{ + if (!definition.customColor) + { + return STANDARD_COLORS[definition.standardColor]; + } + const parsed = parseColor(definition.color); + if (parsed == undefined) + { + throw regenError("Enter a hex code, like #373737, or RGB from 0 to 255, like 55, 55, 55.", ["color"]); + } + return parsed; +} + +/** + * The color a string names: a hex code (see `hexColor`), or red, green, and blue from 0 to 255, apart by commas or + * spaces, and in `rgb(...)` or not (`77, 77, 77`, `77 77 77`, `rgb(77, 77, 77)`); undefined if it names none. + */ +export function parseColor(text is string) +{ + const hex = hexColor(text); + if (hex != undefined) + { + return hex; + } + for (var pattern in ["\\s*[rR][gG][bB]\\s*\\((.*)\\)\\s*", "(.*)"]) + { + const found = match(text, pattern); + if (!found.hasMatch) + { + continue; + } + const channels = match(found.captures[1], "\\s*(\\d{1,3})\\s*[,\\s]\\s*(\\d{1,3})\\s*[,\\s]\\s*(\\d{1,3})\\s*"); + if (!channels.hasMatch) + { + return undefined; + } + var values = []; + for (var channel in subArray(channels.captures, 1, 4)) + { + const value = stringToNumber(channel); + if (value > 255) + { + return undefined; + } + values = append(values, value); + } + return rgbColor(values[0], values[1], values[2]); + } + return undefined; +} + +/** + * A color made see-through: `alpha` from 0, clear, to 1, opaque. + */ +export function translucent(opaque is Color, alpha is number) returns Color +{ + return color(opaque.red, opaque.green, opaque.blue, alpha); +} + +/** + * A color from red, green, and blue channels, each from 0 to 255. + */ +export function rgbColor(red is number, green is number, blue is number) returns Color +{ + return color(red / 255, green / 255, blue / 255); +} + +const HEX_DIGITS = { + "0" : 0, "1" : 1, "2" : 2, "3" : 3, "4" : 4, "5" : 5, "6" : 6, "7" : 7, "8" : 8, "9" : 9, + "a" : 10, "b" : 11, "c" : 12, "d" : 13, "e" : 14, "f" : 15, + "A" : 10, "B" : 11, "C" : 12, "D" : 13, "E" : 14, "F" : 15 + }; + +/** + * The color a hex code names: 6 digits (`#4D4D4D`) or 3 (`#FFF`, each digit doubled), with or without the `#`, and + * spaces around it ignored; undefined if it names none. + */ +export function hexColor(code is string) +{ + const found = match(code, "\\s*#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})\\s*"); + if (!found.hasMatch) + { + return undefined; + } + var digits = splitIntoCharacters(found.captures[1]); + if (size(digits) == 3) + { + digits = [digits[0], digits[0], digits[1], digits[1], digits[2], digits[2]]; + } + var channels = []; + for (var i = 0; i < 6; i += 2) + { + channels = append(channels, HEX_DIGITS[digits[i]] * 16 + HEX_DIGITS[digits[i + 1]]); + } + return rgbColor(channels[0], channels[1], channels[2]); +} diff --git a/featurescripts/color/robotColor.md b/featurescripts/color/robotColor.md new file mode 100644 index 00000000..92d3043f --- /dev/null +++ b/featurescripts/color/robotColor.md @@ -0,0 +1,56 @@ +# Robot color + +## Summary + +Gives parts an appearance: one of FRCDesign's standard colors, or with Custom color checked, any color by hex code or +RGB, on the parts selected or every part in the Part Studio. Files: `robotColor.fs`; its standard colors are +FRCDesignLib's color standards, which `core/robotProperties.fs`'s appearances share. + +Unreleased. + +## Strings + +| Feature | Name | Description | +| --- | --- | --- | +| `robotColor` | Robot color | Give parts one of FRCDesign's standard appearances, or any color by hex code or RGB. | + +The description ends with the credit. + +| Parameter | Description | +| --- | --- | +| Color | A hex code, like #373737 or #FFF, or RGB from 0 to 255, like 55, 55, 55. | + +| Message | When | Highlights | Closest std error | +| --- | --- | --- | --- | +| Select parts to color. (error) | Parts is Selected, and none are | Parts to color | none | +| Enter a hex code, like #373737, or RGB from 0 to 255, like 55, 55, 55. (error) | Custom color, and Color names no color | Color | none | +| There are no parts to color. (info) | Parts is All, and the Part Studio has no parts yet | none | none | + +It sets each part's appearance, and nothing else. + +## How it works + +The body: + +1. Picks the parts: those selected (`colorsSelectedParts`), or every modifiable solid part + (`qAllModifiableSolidBodies`), so parts derived or in context are left alone. None selected is an error; none at + all, with All, is info, and nothing is done. +2. Works out the color (`chosenColor`): + - Standard color (General black by default): `STANDARD_COLORS`, each of FRCDesignLib's color standards, in the + standards' order, by its hex code; the polycarbonates are 80% opaque, as the standards list them. Each option's + name gives its hex code. A test checks the colors `core/robotProperties.fs` shares with the standards against + them. + - Custom color, overriding it: `parseColor` reads Color as a hex code first (`hexColor`: 6 digits or 3, each + doubled as CSS reads `#FFF`, with or without `#`, either case), then as red, green, and blue from 0 to 255, apart + by commas or spaces, in `rgb(...)` or not. So three digits alone are hex. Spaces around it are ignored; + anything else is an error. +3. Sets their appearance (`setProperty`, `PropertyType.APPEARANCE`). + +It colors the parts as they are where it sits in the feature list: parts made after it keep their own. + +There are no `try`s. + +## Issues found + +- The standard colors are FRCDesignLib's color standards as they stood on 2026-10-23; a change to the standards + needs `STANDARD_COLORS` changing by hand. diff --git a/featurescripts/core/robotProperties.fs b/featurescripts/core/robotProperties.fs index 876309ea..d906d139 100644 --- a/featurescripts/core/robotProperties.fs +++ b/featurescripts/core/robotProperties.fs @@ -7,25 +7,27 @@ export const STEEL = material("Steel", 0.284 * pound / inch ^ 3); export const STAINLESS_STEEL = material("Stainless Steel", 0.289 * pound / inch ^ 3); export const PLASTIC = material("Onyx", 1.18 * gram / centimeter ^ 3); -// Appearances of parts, by what they're made of +// Appearances of parts, by what they're made of: FRCDesignLib's color standards, but for uncoated steel and printed green -/** General white (#EAEAEA): electronics housings, buttons. */ -export const WHITE = color(234 / 255, 234 / 255, 234 / 255); -/** Light gray (#E6E6E6): purely uncoated aluminum, like REX standoffs and raw tube. */ +/** General white (#FFFFFF): electronics housings, buttons. */ +export const WHITE = color(255 / 255, 255 / 255, 255 / 255); +/** Light grey (#E6E6E6): uncoated aluminum, like REX standoffs and raw tube, and Colson wheels. */ export const LIGHT_GRAY = color(230 / 255, 230 / 255, 230 / 255); -/** Medium gray (#A6A6A6): aluminum, like clear anodized tube and aluminum shafts. */ -export const MEDIUM_GRAY = color(166 / 255, 166 / 255, 166 / 255); -/** Steel (#B3B3B3): bearings, magnets, uncoated steel bolts and shafts, omni wheel rollers. */ +/** Medium grey (#C6C6C6): motor shafts, grey wires, metal contacts and terminals, zinc-coated steel. */ +export const MEDIUM_GRAY = color(198 / 255, 198 / 255, 198 / 255); +/** Steel and neodymium grey (#B3B3B3): bearings, magnets, uncoated steel bolts and shafts, omni wheel rollers. */ export const STEEL_GRAY = color(179 / 255, 179 / 255, 179 / 255); /** Uncoated steel (#B8C0D4): threaded plates. */ export const UNCOATED_STEEL_GRAY = color(184 / 255, 192 / 255, 212 / 255); /** - * General black (#4D4D4D): anything black, like sprockets, steel gears, black anodized aluminum (like WCP's), black + * General black (#373737): anything black, like sprockets, steel gears, black anodized aluminum (like WCP's), black * oxide bolts, belts and tread, and motors. */ -export const BLACK = color(77 / 255, 77 / 255, 77 / 255); -/** Machined brass yellow (#F5D578): brass gears and pins. */ -export const BRASS_YELLOW = color(245 / 255, 213 / 255, 120 / 255); +export const BLACK = color(55 / 255, 55 / 255, 55 / 255); +/** Machined brass yellow (#FDE086): brass gears and pins. */ +export const BRASS_YELLOW = color(253 / 255, 224 / 255, 134 / 255); +/** Zinc-coated steel (#E1E7EC): nuts. */ +export const ZINC_COATED_STEEL = color(225 / 255, 231 / 255, 236 / 255); /** REV orange (#FE8B00): Wago levers. */ export const REV_ORANGE = color(254 / 255, 139 / 255, 0 / 255); /** 3D printed green (#4DD188): printed parts. */ diff --git a/featurescripts/edit/robotEdit.fs b/featurescripts/edit/robotEdit.fs index f39e946a..74a75a8e 100644 --- a/featurescripts/edit/robotEdit.fs +++ b/featurescripts/edit/robotEdit.fs @@ -6,7 +6,7 @@ import(path : "6c65805103086c85362ee4b7", version : "c8ae72bd99ee1f581e10e759"); export import(path : "01402b7c9eebd8bf0b5d3e52", version : "bb7c494edc43a307e631af8d"); import(path : "f58a965fe7005e2e3c9a67c7", version : "5794d15cbce3be3e963e93d5"); // The hole tables Robot shaft and Robot spacer use -import(path : "8fc3df84a88e74d27ad43d26", version : "06fb8de71c6fd5a2c48eb7fd"); +import(path : "8fc3df84a88e74d27ad43d26", version : "e86b51c08c2cd84288fa9669"); /** * What Robot edit does to the parts it's given. diff --git a/featurescripts/fasteners/fastenerTables.gen.fs b/featurescripts/fasteners/fastenerTables.gen.fs new file mode 100644 index 00000000..7bd71144 --- /dev/null +++ b/featurescripts/fasteners/fastenerTables.gen.fs @@ -0,0 +1,2763 @@ +FeatureScript 2960; +import(path : "onshape/std/common.fs", version : "2960.0"); +import(path : "0794d10863d10d98a88c2ab4", version : "ee89dca8b88ae07af559109e"); // core/robotProperties.fs + +/* Generated from fastenerTables.py by `fs gen` -- DO NOT EDIT */ + +export enum FastenerVendor +{ + annotation { "Name" : "Generic" } + GENERIC, + annotation { "Name" : "McMaster-Carr" } + MCMASTER, + annotation { "Name" : "goBILDA" } + GOBILDA, + annotation { "Name" : "REV" } + REV, + annotation { "Name" : "WCP" } + WCP, + annotation { "Name" : "AndyMark" } + ANDYMARK +} + +export enum FastenerSize +{ + annotation { "Name" : "#4-40" } + NO_4_40, + annotation { "Name" : "#6-32" } + NO_6_32, + annotation { "Name" : "#8-32" } + NO_8_32, + annotation { "Name" : "#10-32" } + NO_10_32, + annotation { "Name" : "1/4-20" } + QUARTER_20, + annotation { "Name" : "M3 x 0.5" } + M3, + annotation { "Name" : "M4 x 0.7" } + M4 +} + +export enum ScrewHead +{ + annotation { "Name" : "Socket head" } + SOCKET, + annotation { "Name" : "Button head" } + BUTTON, + annotation { "Name" : "Flat head" } + FLAT, + annotation { "Name" : "Hex head" } + HEX +} + +export enum ScrewLength +{ + annotation { "Name" : "3/32 in" } + IN_0_09375, + annotation { "Name" : "1/8 in" } + IN_0_125, + annotation { "Name" : "5/32 in" } + IN_0_15625, + annotation { "Name" : "3/16 in" } + IN_0_1875, + annotation { "Name" : "1/4 in" } + IN_0_25, + annotation { "Name" : "5/16 in" } + IN_0_3125, + annotation { "Name" : "3/8 in" } + IN_0_375, + annotation { "Name" : "7/16 in" } + IN_0_4375, + annotation { "Name" : "1/2 in" } + IN_0_5, + annotation { "Name" : "9/16 in" } + IN_0_5625, + annotation { "Name" : "5/8 in" } + IN_0_625, + annotation { "Name" : "11/16 in" } + IN_0_6875, + annotation { "Name" : "3/4 in" } + IN_0_75, + annotation { "Name" : "7/8 in" } + IN_0_875, + annotation { "Name" : "1 in" } + IN_1, + annotation { "Name" : "1-1/8 in" } + IN_1_125, + annotation { "Name" : "1-1/4 in" } + IN_1_25, + annotation { "Name" : "1-3/8 in" } + IN_1_375, + annotation { "Name" : "1-1/2 in" } + IN_1_5, + annotation { "Name" : "1-5/8 in" } + IN_1_625, + annotation { "Name" : "1-3/4 in" } + IN_1_75, + annotation { "Name" : "1-7/8 in" } + IN_1_875, + annotation { "Name" : "2 in" } + IN_2, + annotation { "Name" : "2-1/8 in" } + IN_2_125, + annotation { "Name" : "2-1/4 in" } + IN_2_25, + annotation { "Name" : "2-3/8 in" } + IN_2_375, + annotation { "Name" : "2-1/2 in" } + IN_2_5, + annotation { "Name" : "2-5/8 in" } + IN_2_625, + annotation { "Name" : "2-3/4 in" } + IN_2_75, + annotation { "Name" : "3 in" } + IN_3, + annotation { "Name" : "3-1/4 in" } + IN_3_25, + annotation { "Name" : "3-1/2 in" } + IN_3_5, + annotation { "Name" : "3-3/4 in" } + IN_3_75, + annotation { "Name" : "4 in" } + IN_4, + annotation { "Name" : "4-1/4 in" } + IN_4_25, + annotation { "Name" : "4-1/2 in" } + IN_4_5, + annotation { "Name" : "4-3/4 in" } + IN_4_75, + annotation { "Name" : "5 in" } + IN_5, + annotation { "Name" : "5-1/4 in" } + IN_5_25, + annotation { "Name" : "5-1/2 in" } + IN_5_5, + annotation { "Name" : "5-3/4 in" } + IN_5_75, + annotation { "Name" : "6 in" } + IN_6, + annotation { "Name" : "6-1/4 in" } + IN_6_25, + annotation { "Name" : "6-1/2 in" } + IN_6_5, + annotation { "Name" : "7 in" } + IN_7, + annotation { "Name" : "7-1/2 in" } + IN_7_5, + annotation { "Name" : "8 in" } + IN_8, + annotation { "Name" : "8-1/2 in" } + IN_8_5, + annotation { "Name" : "9 in" } + IN_9, + annotation { "Name" : "10 in" } + IN_10, + annotation { "Name" : "3 mm" } + MM_3, + annotation { "Name" : "4 mm" } + MM_4, + annotation { "Name" : "5 mm" } + MM_5, + annotation { "Name" : "6 mm" } + MM_6, + annotation { "Name" : "7 mm" } + MM_7, + annotation { "Name" : "8 mm" } + MM_8, + annotation { "Name" : "9 mm" } + MM_9, + annotation { "Name" : "10 mm" } + MM_10, + annotation { "Name" : "11 mm" } + MM_11, + annotation { "Name" : "12 mm" } + MM_12, + annotation { "Name" : "14 mm" } + MM_14, + annotation { "Name" : "15 mm" } + MM_15, + annotation { "Name" : "16 mm" } + MM_16, + annotation { "Name" : "18 mm" } + MM_18, + annotation { "Name" : "20 mm" } + MM_20, + annotation { "Name" : "22 mm" } + MM_22, + annotation { "Name" : "25 mm" } + MM_25, + annotation { "Name" : "30 mm" } + MM_30, + annotation { "Name" : "35 mm" } + MM_35, + annotation { "Name" : "40 mm" } + MM_40, + annotation { "Name" : "45 mm" } + MM_45, + annotation { "Name" : "50 mm" } + MM_50, + annotation { "Name" : "55 mm" } + MM_55, + annotation { "Name" : "60 mm" } + MM_60, + annotation { "Name" : "65 mm" } + MM_65, + annotation { "Name" : "70 mm" } + MM_70, + annotation { "Name" : "75 mm" } + MM_75, + annotation { "Name" : "80 mm" } + MM_80, + annotation { "Name" : "85 mm" } + MM_85, + annotation { "Name" : "90 mm" } + MM_90, + annotation { "Name" : "100 mm" } + MM_100, + annotation { "Name" : "110 mm" } + MM_110 +} + +export enum ScrewFinish +{ + annotation { "Name" : "Black" } + BLACK, + annotation { "Name" : "Zinc plated" } + ZINC_PLATED, + annotation { "Name" : "Aluminum" } + ALUMINUM, + annotation { "Name" : "Stainless steel" } + STAINLESS +} + +export enum WasherFinish +{ + annotation { "Name" : "Black" } + BLACK, + annotation { "Name" : "Zinc plated" } + ZINC_PLATED, + annotation { "Name" : "Stainless steel" } + STAINLESS +} + +export enum NutFinish +{ + annotation { "Name" : "Zinc plated" } + ZINC_PLATED, + annotation { "Name" : "Stainless steel" } + STAINLESS, + annotation { "Name" : "Black" } + BLACK +} + +export enum NutType +{ + annotation { "Name" : "Nylock" } + NYLOCK, + annotation { "Name" : "Thin nylock" } + THIN_NYLOCK, + annotation { "Name" : "Hex" } + HEX, + annotation { "Name" : "Thin hex" } + THIN_HEX, + annotation { "Name" : "Square" } + SQUARE +} + +export enum WasherType +{ + annotation { "Name" : "5/16 in OD x 0.03 in" } + OD_5_16_X_0_03, + annotation { "Name" : "5/16 in OD x 0.032 in" } + OD_5_16_X_0_032, + annotation { "Name" : "3/8 in OD x 0.012 in" } + OD_3_8_X_0_012, + annotation { "Name" : "3/8 in OD x 0.03 in" } + OD_3_8_X_0_03, + annotation { "Name" : "3/8 in OD x 0.031 in" } + OD_3_8_X_0_031, + annotation { "Name" : "3/8 in OD x 0.049 in" } + OD_3_8_X_0_049, + annotation { "Name" : "7/16 in OD x 0.03 in" } + OD_7_16_X_0_03, + annotation { "Name" : "7/16 in OD x 0.049 in" } + OD_7_16_X_0_049, + annotation { "Name" : "1/2 in OD x 0.04 in" } + OD_1_2_X_0_04, + annotation { "Name" : "1/2 in OD x 0.049 in" } + OD_1_2_X_0_049, + annotation { "Name" : "5/8 in OD x 0.031 in" } + OD_5_8_X_0_031, + annotation { "Name" : "5/8 in OD x 0.05 in" } + OD_5_8_X_0_05, + annotation { "Name" : "5/8 in OD x 0.063 in" } + OD_5_8_X_0_063, + annotation { "Name" : "5/8 in OD x 0.065 in" } + OD_5_8_X_0_065, + annotation { "Name" : "3/4 in OD x 0.062 in" } + OD_3_4_X_0_062, + annotation { "Name" : "1 in OD x 0.062 in" } + OD_1_X_0_062, + annotation { "Name" : "3 in OD x 0.06 in" } + OD_3_X_0_06, + annotation { "Name" : "7 mm OD x 0.5 mm" } + MM_7_X_0_5, + annotation { "Name" : "8 mm OD x 1 mm" } + MM_8_X_1, + annotation { "Name" : "9 mm OD x 0.8 mm" } + MM_9_X_0_8, + annotation { "Name" : "9 mm OD x 0.9 mm" } + MM_9_X_0_9, + annotation { "Name" : "10.9 mm OD x 1.5 mm" } + MM_10_9_X_1_5 +} + +export const FASTENER_SIZES = { + FastenerSize.NO_4_40 : { "name" : "#4-40", "size" : "#4", "pitch" : "40 tpi", "threadPitch" : inch / 40, "majorDiameter" : 0.112 * inch, "minorDiameter" : 0.0814 * inch, "tapDrillDiameter" : 0.089 * inch, "closeClearanceDiameter" : 0.116 * inch, "freeClearanceDiameter" : 0.1285 * inch, "threadAllowance" : 0.5 * inch, "metric" : false }, + FastenerSize.NO_6_32 : { "name" : "#6-32", "size" : "#6", "pitch" : "32 tpi", "threadPitch" : inch / 32, "majorDiameter" : 0.138 * inch, "minorDiameter" : 0.1 * inch, "tapDrillDiameter" : 0.1065 * inch, "closeClearanceDiameter" : 0.144 * inch, "freeClearanceDiameter" : 0.1495 * inch, "threadAllowance" : 0.5 * inch, "metric" : false }, + FastenerSize.NO_8_32 : { "name" : "#8-32", "size" : "#8", "pitch" : "32 tpi", "threadPitch" : inch / 32, "majorDiameter" : 0.164 * inch, "minorDiameter" : 0.1259 * inch, "tapDrillDiameter" : 0.136 * inch, "closeClearanceDiameter" : 0.1695 * inch, "freeClearanceDiameter" : 0.177 * inch, "threadAllowance" : 0.5 * inch, "metric" : false }, + FastenerSize.NO_10_32 : { "name" : "#10-32", "size" : "#10", "pitch" : "32 tpi", "threadPitch" : inch / 32, "majorDiameter" : 0.19 * inch, "minorDiameter" : 0.1528 * inch, "tapDrillDiameter" : 0.159 * inch, "closeClearanceDiameter" : 0.196 * inch, "freeClearanceDiameter" : 0.201 * inch, "threadAllowance" : 0.5 * inch, "metric" : false }, + FastenerSize.QUARTER_20 : { "name" : "1/4-20", "size" : "1/4", "pitch" : "20 tpi", "threadPitch" : inch / 20, "majorDiameter" : 0.25 * inch, "minorDiameter" : 0.1894 * inch, "tapDrillDiameter" : 0.201 * inch, "closeClearanceDiameter" : 0.257 * inch, "freeClearanceDiameter" : 0.266 * inch, "threadAllowance" : 0.5 * inch, "metric" : false }, + FastenerSize.M3 : { "name" : "M3 x 0.5", "size" : "M3", "pitch" : "0.5 mm", "threadPitch" : 0.5 * millimeter, "majorDiameter" : 3 * millimeter, "minorDiameter" : 2.459 * millimeter, "tapDrillDiameter" : 2.5 * millimeter, "closeClearanceDiameter" : 3.2 * millimeter, "freeClearanceDiameter" : 3.4 * millimeter, "threadAllowance" : 12 * millimeter, "metric" : true }, + FastenerSize.M4 : { "name" : "M4 x 0.7", "size" : "M4", "pitch" : "0.7 mm", "threadPitch" : 0.7 * millimeter, "majorDiameter" : 4 * millimeter, "minorDiameter" : 3.242 * millimeter, "tapDrillDiameter" : 3.3 * millimeter, "closeClearanceDiameter" : 4.3 * millimeter, "freeClearanceDiameter" : 4.5 * millimeter, "threadAllowance" : 12 * millimeter, "metric" : true } + }; + +export const SCREW_HEADS = { + FastenerSize.NO_4_40 : { + ScrewHead.SOCKET : { "headDiameter" : 0.183 * inch, "headHeight" : 0.112 * inch, "socketSize" : 0.09375 * inch }, + ScrewHead.BUTTON : { "headDiameter" : 0.213 * inch, "headHeight" : 0.059 * inch, "socketSize" : 0.078125 * inch }, + ScrewHead.FLAT : { "headDiameter" : 0.255 * inch, "headHeight" : 0.083 * inch, "socketSize" : 0.0625 * inch, "countersinkAngle" : 82 * degree } + }, + FastenerSize.NO_6_32 : { + ScrewHead.SOCKET : { "headDiameter" : 0.226 * inch, "headHeight" : 0.138 * inch, "socketSize" : 0.109375 * inch }, + ScrewHead.BUTTON : { "headDiameter" : 0.262 * inch, "headHeight" : 0.074 * inch, "socketSize" : 0.078125 * inch }, + ScrewHead.FLAT : { "headDiameter" : 0.307 * inch, "headHeight" : 0.097 * inch, "socketSize" : 0.078125 * inch, "countersinkAngle" : 82 * degree } + }, + FastenerSize.NO_8_32 : { + ScrewHead.SOCKET : { "headDiameter" : 0.27 * inch, "headHeight" : 0.164 * inch, "socketSize" : 0.140625 * inch }, + ScrewHead.BUTTON : { "headDiameter" : 0.312 * inch, "headHeight" : 0.087 * inch, "socketSize" : 0.09375 * inch }, + ScrewHead.FLAT : { "headDiameter" : 0.359 * inch, "headHeight" : 0.115 * inch, "socketSize" : 0.09375 * inch, "countersinkAngle" : 82 * degree } + }, + FastenerSize.NO_10_32 : { + ScrewHead.SOCKET : { "headDiameter" : 0.312 * inch, "headHeight" : 0.19 * inch, "socketSize" : 0.15625 * inch }, + ScrewHead.BUTTON : { "headDiameter" : 0.375 * inch, "headHeight" : 0.102 * inch, "socketSize" : 0.125 * inch }, + ScrewHead.FLAT : { "headDiameter" : 0.411 * inch, "headHeight" : 0.132 * inch, "socketSize" : 0.125 * inch, "countersinkAngle" : 82 * degree } + }, + FastenerSize.QUARTER_20 : { + ScrewHead.SOCKET : { "headDiameter" : 0.375 * inch, "headHeight" : 0.25 * inch, "socketSize" : 0.1875 * inch }, + ScrewHead.BUTTON : { "headDiameter" : 0.437 * inch, "headHeight" : 0.132 * inch, "socketSize" : 0.15625 * inch }, + ScrewHead.FLAT : { "headDiameter" : 0.531 * inch, "headHeight" : 0.153 * inch, "socketSize" : 0.15625 * inch, "countersinkAngle" : 82 * degree } + }, + FastenerSize.M3 : { + ScrewHead.SOCKET : { "headDiameter" : 5.5 * millimeter, "headHeight" : 3 * millimeter, "socketSize" : 2.5 * millimeter }, + ScrewHead.BUTTON : { "headDiameter" : 5.7 * millimeter, "headHeight" : 1.65 * millimeter, "socketSize" : 2 * millimeter }, + ScrewHead.FLAT : { "headDiameter" : 6 * millimeter, "headHeight" : 1.7 * millimeter, "socketSize" : 2 * millimeter, "countersinkAngle" : 90 * degree }, + ScrewHead.HEX : { "headDiameter" : 6.3509 * millimeter, "headHeight" : 2 * millimeter, "acrossFlats" : 5.5 * millimeter } + }, + FastenerSize.M4 : { + ScrewHead.SOCKET : { "headDiameter" : 7 * millimeter, "headHeight" : 4 * millimeter, "socketSize" : 3 * millimeter }, + ScrewHead.BUTTON : { "headDiameter" : 7.6 * millimeter, "headHeight" : 2.2 * millimeter, "socketSize" : 2.5 * millimeter }, + ScrewHead.FLAT : { "headDiameter" : 8 * millimeter, "headHeight" : 2.3 * millimeter, "socketSize" : 2.5 * millimeter, "countersinkAngle" : 90 * degree }, + ScrewHead.HEX : { "headDiameter" : 8.0829 * millimeter, "headHeight" : 2.8 * millimeter, "acrossFlats" : 7 * millimeter } + } + }; + +export const SCREW_LENGTHS = { + ScrewLength.IN_0_09375 : { "length" : 0.09375 * inch, "name" : "3/32 in" }, + ScrewLength.IN_0_125 : { "length" : 0.125 * inch, "name" : "1/8 in" }, + ScrewLength.IN_0_15625 : { "length" : 0.15625 * inch, "name" : "5/32 in" }, + ScrewLength.IN_0_1875 : { "length" : 0.1875 * inch, "name" : "3/16 in" }, + ScrewLength.IN_0_25 : { "length" : 0.25 * inch, "name" : "1/4 in" }, + ScrewLength.IN_0_3125 : { "length" : 0.3125 * inch, "name" : "5/16 in" }, + ScrewLength.IN_0_375 : { "length" : 0.375 * inch, "name" : "3/8 in" }, + ScrewLength.IN_0_4375 : { "length" : 0.4375 * inch, "name" : "7/16 in" }, + ScrewLength.IN_0_5 : { "length" : 0.5 * inch, "name" : "1/2 in" }, + ScrewLength.IN_0_5625 : { "length" : 0.5625 * inch, "name" : "9/16 in" }, + ScrewLength.IN_0_625 : { "length" : 0.625 * inch, "name" : "5/8 in" }, + ScrewLength.IN_0_6875 : { "length" : 0.6875 * inch, "name" : "11/16 in" }, + ScrewLength.IN_0_75 : { "length" : 0.75 * inch, "name" : "3/4 in" }, + ScrewLength.IN_0_875 : { "length" : 0.875 * inch, "name" : "7/8 in" }, + ScrewLength.IN_1 : { "length" : 1 * inch, "name" : "1 in" }, + ScrewLength.IN_1_125 : { "length" : 1.125 * inch, "name" : "1-1/8 in" }, + ScrewLength.IN_1_25 : { "length" : 1.25 * inch, "name" : "1-1/4 in" }, + ScrewLength.IN_1_375 : { "length" : 1.375 * inch, "name" : "1-3/8 in" }, + ScrewLength.IN_1_5 : { "length" : 1.5 * inch, "name" : "1-1/2 in" }, + ScrewLength.IN_1_625 : { "length" : 1.625 * inch, "name" : "1-5/8 in" }, + ScrewLength.IN_1_75 : { "length" : 1.75 * inch, "name" : "1-3/4 in" }, + ScrewLength.IN_1_875 : { "length" : 1.875 * inch, "name" : "1-7/8 in" }, + ScrewLength.IN_2 : { "length" : 2 * inch, "name" : "2 in" }, + ScrewLength.IN_2_125 : { "length" : 2.125 * inch, "name" : "2-1/8 in" }, + ScrewLength.IN_2_25 : { "length" : 2.25 * inch, "name" : "2-1/4 in" }, + ScrewLength.IN_2_375 : { "length" : 2.375 * inch, "name" : "2-3/8 in" }, + ScrewLength.IN_2_5 : { "length" : 2.5 * inch, "name" : "2-1/2 in" }, + ScrewLength.IN_2_625 : { "length" : 2.625 * inch, "name" : "2-5/8 in" }, + ScrewLength.IN_2_75 : { "length" : 2.75 * inch, "name" : "2-3/4 in" }, + ScrewLength.IN_3 : { "length" : 3 * inch, "name" : "3 in" }, + ScrewLength.IN_3_25 : { "length" : 3.25 * inch, "name" : "3-1/4 in" }, + ScrewLength.IN_3_5 : { "length" : 3.5 * inch, "name" : "3-1/2 in" }, + ScrewLength.IN_3_75 : { "length" : 3.75 * inch, "name" : "3-3/4 in" }, + ScrewLength.IN_4 : { "length" : 4 * inch, "name" : "4 in" }, + ScrewLength.IN_4_25 : { "length" : 4.25 * inch, "name" : "4-1/4 in" }, + ScrewLength.IN_4_5 : { "length" : 4.5 * inch, "name" : "4-1/2 in" }, + ScrewLength.IN_4_75 : { "length" : 4.75 * inch, "name" : "4-3/4 in" }, + ScrewLength.IN_5 : { "length" : 5 * inch, "name" : "5 in" }, + ScrewLength.IN_5_25 : { "length" : 5.25 * inch, "name" : "5-1/4 in" }, + ScrewLength.IN_5_5 : { "length" : 5.5 * inch, "name" : "5-1/2 in" }, + ScrewLength.IN_5_75 : { "length" : 5.75 * inch, "name" : "5-3/4 in" }, + ScrewLength.IN_6 : { "length" : 6 * inch, "name" : "6 in" }, + ScrewLength.IN_6_25 : { "length" : 6.25 * inch, "name" : "6-1/4 in" }, + ScrewLength.IN_6_5 : { "length" : 6.5 * inch, "name" : "6-1/2 in" }, + ScrewLength.IN_7 : { "length" : 7 * inch, "name" : "7 in" }, + ScrewLength.IN_7_5 : { "length" : 7.5 * inch, "name" : "7-1/2 in" }, + ScrewLength.IN_8 : { "length" : 8 * inch, "name" : "8 in" }, + ScrewLength.IN_8_5 : { "length" : 8.5 * inch, "name" : "8-1/2 in" }, + ScrewLength.IN_9 : { "length" : 9 * inch, "name" : "9 in" }, + ScrewLength.IN_10 : { "length" : 10 * inch, "name" : "10 in" }, + ScrewLength.MM_3 : { "length" : 3 * millimeter, "name" : "3 mm" }, + ScrewLength.MM_4 : { "length" : 4 * millimeter, "name" : "4 mm" }, + ScrewLength.MM_5 : { "length" : 5 * millimeter, "name" : "5 mm" }, + ScrewLength.MM_6 : { "length" : 6 * millimeter, "name" : "6 mm" }, + ScrewLength.MM_7 : { "length" : 7 * millimeter, "name" : "7 mm" }, + ScrewLength.MM_8 : { "length" : 8 * millimeter, "name" : "8 mm" }, + ScrewLength.MM_9 : { "length" : 9 * millimeter, "name" : "9 mm" }, + ScrewLength.MM_10 : { "length" : 10 * millimeter, "name" : "10 mm" }, + ScrewLength.MM_11 : { "length" : 11 * millimeter, "name" : "11 mm" }, + ScrewLength.MM_12 : { "length" : 12 * millimeter, "name" : "12 mm" }, + ScrewLength.MM_14 : { "length" : 14 * millimeter, "name" : "14 mm" }, + ScrewLength.MM_15 : { "length" : 15 * millimeter, "name" : "15 mm" }, + ScrewLength.MM_16 : { "length" : 16 * millimeter, "name" : "16 mm" }, + ScrewLength.MM_18 : { "length" : 18 * millimeter, "name" : "18 mm" }, + ScrewLength.MM_20 : { "length" : 20 * millimeter, "name" : "20 mm" }, + ScrewLength.MM_22 : { "length" : 22 * millimeter, "name" : "22 mm" }, + ScrewLength.MM_25 : { "length" : 25 * millimeter, "name" : "25 mm" }, + ScrewLength.MM_30 : { "length" : 30 * millimeter, "name" : "30 mm" }, + ScrewLength.MM_35 : { "length" : 35 * millimeter, "name" : "35 mm" }, + ScrewLength.MM_40 : { "length" : 40 * millimeter, "name" : "40 mm" }, + ScrewLength.MM_45 : { "length" : 45 * millimeter, "name" : "45 mm" }, + ScrewLength.MM_50 : { "length" : 50 * millimeter, "name" : "50 mm" }, + ScrewLength.MM_55 : { "length" : 55 * millimeter, "name" : "55 mm" }, + ScrewLength.MM_60 : { "length" : 60 * millimeter, "name" : "60 mm" }, + ScrewLength.MM_65 : { "length" : 65 * millimeter, "name" : "65 mm" }, + ScrewLength.MM_70 : { "length" : 70 * millimeter, "name" : "70 mm" }, + ScrewLength.MM_75 : { "length" : 75 * millimeter, "name" : "75 mm" }, + ScrewLength.MM_80 : { "length" : 80 * millimeter, "name" : "80 mm" }, + ScrewLength.MM_85 : { "length" : 85 * millimeter, "name" : "85 mm" }, + ScrewLength.MM_90 : { "length" : 90 * millimeter, "name" : "90 mm" }, + ScrewLength.MM_100 : { "length" : 100 * millimeter, "name" : "100 mm" }, + ScrewLength.MM_110 : { "length" : 110 * millimeter, "name" : "110 mm" } + }; + +/** What each vendor makes, by vendor, size, head, finish, and length: each screw's properties, partly threaded (`standard`) and, where it's sold so too, fully threaded (`fullThread`). */ +export const SCREWS = { + FastenerVendor.GENERIC : { + FastenerSize.NO_4_40 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_09375 : { "standard" : { "name" : "#4-40 x 3/32 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_125 : { "standard" : { "name" : "#4-40 x 1/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#4-40 x 5/32 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#4-40 x 3/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#4-40 x 1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#4-40 x 5/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#4-40 x 3/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#4-40 x 7/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#4-40 x 1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#4-40 x 9/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#4-40 x 5/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#4-40 x 3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#4-40 x 7/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#4-40 x 1 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#4-40 x 1-1/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#4-40 x 1-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#4-40 x 1-3/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#4-40 x 1-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#4-40 x 1-5/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#4-40 x 1-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#4-40 x 2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#4-40 x 2-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#4-40 x 2-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#4-40 x 2-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#4-40 x 3 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#4-40 x 3-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "#4-40 x 4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#4-40 x 1/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#4-40 x 3/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#4-40 x 1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#4-40 x 5/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#4-40 x 3/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#4-40 x 7/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#4-40 x 1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#4-40 x 9/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#4-40 x 5/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#4-40 x 3/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#4-40 x 7/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#4-40 x 1 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#4-40 x 1-1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#4-40 x 1-1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#4-40 x 2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#4-40 x 1/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#4-40 x 5/32 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#4-40 x 3/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#4-40 x 1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#4-40 x 5/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#4-40 x 3/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#4-40 x 7/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#4-40 x 1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#4-40 x 9/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#4-40 x 5/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#4-40 x 3/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#4-40 x 7/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#4-40 x 1 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#4-40 x 1-1/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#4-40 x 1-1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#4-40 x 1-1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + } + }, + FastenerSize.NO_6_32 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_09375 : { "standard" : { "name" : "#6-32 x 3/32 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_125 : { "standard" : { "name" : "#6-32 x 1/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#6-32 x 5/32 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#6-32 x 3/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#6-32 x 1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#6-32 x 5/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#6-32 x 3/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#6-32 x 7/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#6-32 x 1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#6-32 x 9/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#6-32 x 5/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#6-32 x 3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#6-32 x 7/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#6-32 x 1 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#6-32 x 1-1/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#6-32 x 1-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#6-32 x 1-3/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#6-32 x 1-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#6-32 x 1-5/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#6-32 x 1-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_875 : { "standard" : { "name" : "#6-32 x 1-7/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#6-32 x 2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_125 : { "standard" : { "name" : "#6-32 x 2-1/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#6-32 x 2-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#6-32 x 2-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#6-32 x 2-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#6-32 x 3 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#6-32 x 3-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#6-32 x 1/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#6-32 x 3/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#6-32 x 1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#6-32 x 5/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#6-32 x 3/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#6-32 x 7/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#6-32 x 1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#6-32 x 9/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#6-32 x 5/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#6-32 x 3/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#6-32 x 7/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#6-32 x 1 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#6-32 x 1-1/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#6-32 x 1-1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#6-32 x 1/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#6-32 x 5/32 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#6-32 x 3/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#6-32 x 1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#6-32 x 5/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#6-32 x 3/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#6-32 x 7/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#6-32 x 1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#6-32 x 9/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#6-32 x 5/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#6-32 x 3/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#6-32 x 7/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#6-32 x 1 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#6-32 x 1-1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#6-32 x 1-1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#6-32 x 1-3/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + } + }, + FastenerSize.NO_8_32 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_09375 : { "standard" : { "name" : "#8-32 x 3/32 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_125 : { "standard" : { "name" : "#8-32 x 1/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#8-32 x 5/32 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#8-32 x 3/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#8-32 x 1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#8-32 x 5/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#8-32 x 3/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#8-32 x 7/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#8-32 x 1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#8-32 x 9/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#8-32 x 5/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_6875 : { "standard" : { "name" : "#8-32 x 11/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#8-32 x 3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#8-32 x 7/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#8-32 x 1 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#8-32 x 1-1/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#8-32 x 1-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#8-32 x 1-3/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#8-32 x 1-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#8-32 x 1-5/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#8-32 x 1-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_875 : { "standard" : { "name" : "#8-32 x 1-7/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#8-32 x 2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#8-32 x 2-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#8-32 x 2-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#8-32 x 2-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#8-32 x 3 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_25 : { "standard" : { "name" : "#8-32 x 3-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#8-32 x 3-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_75 : { "standard" : { "name" : "#8-32 x 3-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "#8-32 x 4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4_5 : { "standard" : { "name" : "#8-32 x 4-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5 : { "standard" : { "name" : "#8-32 x 5 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#8-32 x 1/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#8-32 x 5/32 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#8-32 x 3/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#8-32 x 1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#8-32 x 5/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#8-32 x 3/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#8-32 x 7/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#8-32 x 1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#8-32 x 9/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#8-32 x 5/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#8-32 x 3/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#8-32 x 7/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#8-32 x 1 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#8-32 x 1-1/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#8-32 x 1-1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#8-32 x 1-3/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#8-32 x 1-1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#8-32 x 1-3/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#8-32 x 2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#8-32 x 2-1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#8-32 x 2-1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#8-32 x 3 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#8-32 x 5/32 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#8-32 x 3/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#8-32 x 1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#8-32 x 5/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#8-32 x 3/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#8-32 x 7/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#8-32 x 1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#8-32 x 9/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#8-32 x 5/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#8-32 x 3/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#8-32 x 7/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#8-32 x 1 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#8-32 x 1-1/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#8-32 x 1-1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#8-32 x 1-3/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#8-32 x 1-1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#8-32 x 1-5/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#8-32 x 1-3/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#8-32 x 2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#8-32 x 2-1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#8-32 x 2-1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#8-32 x 3 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + } + }, + FastenerSize.NO_10_32 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#10-32 x 5/32 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#10-32 x 3/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#10-32 x 5/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#10-32 x 7/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#10-32 x 9/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_6875 : { "standard" : { "name" : "#10-32 x 11/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#10-32 x 7/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#10-32 x 1-1/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#10-32 x 1-3/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#10-32 x 1-5/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_875 : { "standard" : { "name" : "#10-32 x 1-7/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#10-32 x 2-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#10-32 x 2-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#10-32 x 2-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#10-32 x 3 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_25 : { "standard" : { "name" : "#10-32 x 3-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#10-32 x 3-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_75 : { "standard" : { "name" : "#10-32 x 3-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "#10-32 x 4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4_5 : { "standard" : { "name" : "#10-32 x 4-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5 : { "standard" : { "name" : "#10-32 x 5 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5_5 : { "standard" : { "name" : "#10-32 x 5-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_6 : { "standard" : { "name" : "#10-32 x 6 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_6_5 : { "standard" : { "name" : "#10-32 x 6-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_7 : { "standard" : { "name" : "#10-32 x 7 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#10-32 x 1/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#10-32 x 3/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#10-32 x 5/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#10-32 x 7/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#10-32 x 9/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#10-32 x 7/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#10-32 x 1-1/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#10-32 x 1-3/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#10-32 x 1-5/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#10-32 x 2-1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#10-32 x 2-1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#10-32 x 2-3/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#10-32 x 3 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4_75 : { "standard" : { "name" : "#10-32 x 4-3/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#10-32 x 3/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#10-32 x 5/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#10-32 x 7/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#10-32 x 9/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#10-32 x 7/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#10-32 x 1-1/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#10-32 x 1-3/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#10-32 x 1-5/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#10-32 x 2-1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#10-32 x 2-1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#10-32 x 3 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#10-32 x 3-1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "#10-32 x 4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + } + }, + FastenerSize.QUARTER_20 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "1/4-20 x 1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "1/4-20 x 5/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "1/4-20 x 3/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "1/4-20 x 7/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "1/4-20 x 1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "1/4-20 x 9/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "1/4-20 x 5/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_6875 : { "standard" : { "name" : "1/4-20 x 11/16 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "1/4-20 x 3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "1/4-20 x 7/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "1/4-20 x 1 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "1/4-20 x 1-1/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "1/4-20 x 1-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "1/4-20 x 1-3/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "1/4-20 x 1-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "1/4-20 x 1-5/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "1/4-20 x 1-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_875 : { "standard" : { "name" : "1/4-20 x 1-7/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "1/4-20 x 2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "1/4-20 x 2-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_375 : { "standard" : { "name" : "1/4-20 x 2-3/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "1/4-20 x 2-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_625 : { "standard" : { "name" : "1/4-20 x 2-5/8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "1/4-20 x 2-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "1/4-20 x 3 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_25 : { "standard" : { "name" : "1/4-20 x 3-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "1/4-20 x 3-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_75 : { "standard" : { "name" : "1/4-20 x 3-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "1/4-20 x 4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4_25 : { "standard" : { "name" : "1/4-20 x 4-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4_5 : { "standard" : { "name" : "1/4-20 x 4-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5 : { "standard" : { "name" : "1/4-20 x 5 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5_25 : { "standard" : { "name" : "1/4-20 x 5-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5_5 : { "standard" : { "name" : "1/4-20 x 5-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5_75 : { "standard" : { "name" : "1/4-20 x 5-3/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_6 : { "standard" : { "name" : "1/4-20 x 6 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_6_25 : { "standard" : { "name" : "1/4-20 x 6-1/4 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_6_5 : { "standard" : { "name" : "1/4-20 x 6-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_7 : { "standard" : { "name" : "1/4-20 x 7 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_7_5 : { "standard" : { "name" : "1/4-20 x 7-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_8 : { "standard" : { "name" : "1/4-20 x 8 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_8_5 : { "standard" : { "name" : "1/4-20 x 8-1/2 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_9 : { "standard" : { "name" : "1/4-20 x 9 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_10 : { "standard" : { "name" : "1/4-20 x 10 in Socket Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_1875 : { "standard" : { "name" : "1/4-20 x 3/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "1/4-20 x 1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "1/4-20 x 5/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "1/4-20 x 3/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "1/4-20 x 7/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "1/4-20 x 1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "1/4-20 x 9/16 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "1/4-20 x 5/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "1/4-20 x 3/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "1/4-20 x 7/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "1/4-20 x 1 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "1/4-20 x 1-1/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "1/4-20 x 1-1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "1/4-20 x 1-3/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "1/4-20 x 1-1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "1/4-20 x 1-5/8 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "1/4-20 x 1-3/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "1/4-20 x 2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "1/4-20 x 2-1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "1/4-20 x 2-1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "1/4-20 x 2-3/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "1/4-20 x 3 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_25 : { "standard" : { "name" : "1/4-20 x 3-1/4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "1/4-20 x 3-1/2 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "1/4-20 x 4 in Button Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "1/4-20 x 1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "1/4-20 x 3/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "1/4-20 x 7/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "1/4-20 x 1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "1/4-20 x 9/16 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "1/4-20 x 5/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "1/4-20 x 3/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "1/4-20 x 7/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "1/4-20 x 1 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "1/4-20 x 1-1/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "1/4-20 x 1-1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "1/4-20 x 1-3/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "1/4-20 x 1-1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "1/4-20 x 1-5/8 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "1/4-20 x 1-3/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "1/4-20 x 2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "1/4-20 x 2-1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "1/4-20 x 2-1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "1/4-20 x 2-3/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "1/4-20 x 3 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_25 : { "standard" : { "name" : "1/4-20 x 3-1/4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "1/4-20 x 3-1/2 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "1/4-20 x 4 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5 : { "standard" : { "name" : "1/4-20 x 5 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_6 : { "standard" : { "name" : "1/4-20 x 6 in Flat Head Screw", "material" : STEEL, "appearance" : BLACK } } + } + } + }, + FastenerSize.M3 : { + ScrewHead.SOCKET : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_3 : { "standard" : { "name" : "M3 x 3 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_4 : { "standard" : { "name" : "M3 x 4 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M3 x 14 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M3 x 15 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M3 x 18 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M3 x 20 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M3 x 22 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M3 x 30 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M3 x 35 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M3 x 40 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M3 x 45 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M3 x 50 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M3 x 55 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_60 : { "standard" : { "name" : "M3 x 60 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_65 : { "standard" : { "name" : "M3 x 65 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_70 : { "standard" : { "name" : "M3 x 70 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_3 : { "standard" : { "name" : "M3 x 3 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_4 : { "standard" : { "name" : "M3 x 4 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M3 x 14 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M3 x 15 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M3 x 18 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M3 x 20 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M3 x 22 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M3 x 30 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M3 x 35 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M3 x 40 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M3 x 45 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M3 x 50 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M3 x 55 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_4 : { "standard" : { "name" : "M3 x 4 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M3 x 14 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M3 x 15 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M3 x 18 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M3 x 20 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M3 x 22 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M3 x 30 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M3 x 35 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M3 x 40 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M3 x 45 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M3 x 50 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + } + }, + ScrewHead.HEX : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Hex Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Hex Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Hex Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Hex Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M3 x 20 mm Hex Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Hex Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M3 x 35 mm Hex Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + } + } + }, + FastenerSize.M4 : { + ScrewHead.SOCKET : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_4 : { "standard" : { "name" : "M4 x 4 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_7 : { "standard" : { "name" : "M4 x 7 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_9 : { "standard" : { "name" : "M4 x 9 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_11 : { "standard" : { "name" : "M4 x 11 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M4 x 14 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M4 x 15 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M4 x 18 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M4 x 22 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M4 x 45 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M4 x 55 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_60 : { "standard" : { "name" : "M4 x 60 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_65 : { "standard" : { "name" : "M4 x 65 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_70 : { "standard" : { "name" : "M4 x 70 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_75 : { "standard" : { "name" : "M4 x 75 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_80 : { "standard" : { "name" : "M4 x 80 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_85 : { "standard" : { "name" : "M4 x 85 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_90 : { "standard" : { "name" : "M4 x 90 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_100 : { "standard" : { "name" : "M4 x 100 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_110 : { "standard" : { "name" : "M4 x 110 mm Socket Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_4 : { "standard" : { "name" : "M4 x 4 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M4 x 14 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M4 x 15 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M4 x 18 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M4 x 22 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M4 x 45 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M4 x 55 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_60 : { "standard" : { "name" : "M4 x 60 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_65 : { "standard" : { "name" : "M4 x 65 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_70 : { "standard" : { "name" : "M4 x 70 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_80 : { "standard" : { "name" : "M4 x 80 mm Button Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M4 x 14 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M4 x 15 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M4 x 18 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M4 x 22 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M4 x 45 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M4 x 55 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_60 : { "standard" : { "name" : "M4 x 60 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_65 : { "standard" : { "name" : "M4 x 65 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_70 : { "standard" : { "name" : "M4 x 70 mm Flat Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + } + }, + ScrewHead.HEX : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Hex Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Hex Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Hex Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Hex Head Screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + } + } + } + }, + FastenerVendor.MCMASTER : { + FastenerSize.NO_4_40 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_09375 : { "standard" : { "name" : "#4-40 x 3/32 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A231", "url" : "https://www.mcmaster.com/91251A231/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_125 : { "standard" : { "name" : "#4-40 x 1/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A018", "url" : "https://www.mcmaster.com/91864A018/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#4-40 x 5/32 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A232", "url" : "https://www.mcmaster.com/91251A232/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#4-40 x 3/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A105", "url" : "https://www.mcmaster.com/91251A105/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#4-40 x 1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A106", "url" : "https://www.mcmaster.com/91251A106/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#4-40 x 5/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A107", "url" : "https://www.mcmaster.com/91251A107/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#4-40 x 3/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A108", "url" : "https://www.mcmaster.com/91251A108/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#4-40 x 7/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A081", "url" : "https://www.mcmaster.com/91864A081/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#4-40 x 1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A110", "url" : "https://www.mcmaster.com/91251A110/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#4-40 x 9/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A028", "url" : "https://www.mcmaster.com/91864A028/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#4-40 x 5/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A112", "url" : "https://www.mcmaster.com/91251A112/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#4-40 x 3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A113", "url" : "https://www.mcmaster.com/91251A113/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#4-40 x 7/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A114", "url" : "https://www.mcmaster.com/91251A114/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#4-40 x 1 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A115", "url" : "https://www.mcmaster.com/91251A115/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#4-40 x 1 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A111", "url" : "https://www.mcmaster.com/90044A111/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#4-40 x 1-1/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A029", "url" : "https://www.mcmaster.com/91864A029/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#4-40 x 1-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A078", "url" : "https://www.mcmaster.com/91251A078/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#4-40 x 1-3/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A210", "url" : "https://www.mcmaster.com/91251A210/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#4-40 x 1-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A149", "url" : "https://www.mcmaster.com/91251A149/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#4-40 x 1-5/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A233", "url" : "https://www.mcmaster.com/91251A233/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#4-40 x 1-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A160", "url" : "https://www.mcmaster.com/91251A160/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#4-40 x 2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A162", "url" : "https://www.mcmaster.com/91251A162/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#4-40 x 2-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A211", "url" : "https://www.mcmaster.com/91251A211/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#4-40 x 2-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A834", "url" : "https://www.mcmaster.com/91251A834/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#4-40 x 2-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A513", "url" : "https://www.mcmaster.com/91251A513/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#4-40 x 3 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A212", "url" : "https://www.mcmaster.com/91251A212/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#4-40 x 3-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A291", "url" : "https://www.mcmaster.com/90044A291/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "#4-40 x 4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A292", "url" : "https://www.mcmaster.com/90044A292/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#4-40 x 1/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A102", "url" : "https://www.mcmaster.com/90128A102/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#4-40 x 3/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A105", "url" : "https://www.mcmaster.com/90128A105/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#4-40 x 1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A106", "url" : "https://www.mcmaster.com/90128A106/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#4-40 x 5/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A107", "url" : "https://www.mcmaster.com/90128A107/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#4-40 x 3/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A108", "url" : "https://www.mcmaster.com/90128A108/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#4-40 x 7/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A311", "url" : "https://www.mcmaster.com/90128A311/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#4-40 x 1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A110", "url" : "https://www.mcmaster.com/90128A110/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#4-40 x 5/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A112", "url" : "https://www.mcmaster.com/90128A112/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#4-40 x 3/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A113", "url" : "https://www.mcmaster.com/90128A113/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#4-40 x 7/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A114", "url" : "https://www.mcmaster.com/90128A114/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#4-40 x 1 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A115", "url" : "https://www.mcmaster.com/90128A115/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#4-40 x 1-1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A119", "url" : "https://www.mcmaster.com/90128A119/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#4-40 x 1-1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A123", "url" : "https://www.mcmaster.com/90128A123/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#4-40 x 2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A103", "url" : "https://www.mcmaster.com/90128A103/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#4-40 x 1/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A103", "url" : "https://www.mcmaster.com/91255A103/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#4-40 x 3/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A105", "url" : "https://www.mcmaster.com/91255A105/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#4-40 x 1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A106", "url" : "https://www.mcmaster.com/91255A106/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#4-40 x 5/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A107", "url" : "https://www.mcmaster.com/91255A107/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#4-40 x 3/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A108", "url" : "https://www.mcmaster.com/91255A108/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#4-40 x 7/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A021", "url" : "https://www.mcmaster.com/91255A021/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#4-40 x 1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A110", "url" : "https://www.mcmaster.com/91255A110/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#4-40 x 9/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A022", "url" : "https://www.mcmaster.com/91255A022/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#4-40 x 5/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A112", "url" : "https://www.mcmaster.com/91255A112/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#4-40 x 3/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A113", "url" : "https://www.mcmaster.com/91255A113/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#4-40 x 7/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A115", "url" : "https://www.mcmaster.com/91255A115/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#4-40 x 1 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A116", "url" : "https://www.mcmaster.com/91255A116/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#4-40 x 1-1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A117", "url" : "https://www.mcmaster.com/91255A117/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#4-40 x 1-1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A023", "url" : "https://www.mcmaster.com/91255A023/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#4-40 x 2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A118", "url" : "https://www.mcmaster.com/91255A118/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#4-40 x 1/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A253", "url" : "https://www.mcmaster.com/91306A253/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#4-40 x 3/16 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A711", "url" : "https://www.mcmaster.com/91306A711/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#4-40 x 1/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A311", "url" : "https://www.mcmaster.com/91306A311/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#4-40 x 3/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A315", "url" : "https://www.mcmaster.com/91306A315/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#4-40 x 7/16 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#4-40 x 1/2 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A318", "url" : "https://www.mcmaster.com/91306A318/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#4-40 x 5/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A254", "url" : "https://www.mcmaster.com/91306A254/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#4-40 x 3/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A255", "url" : "https://www.mcmaster.com/91306A255/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#4-40 x 1/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#4-40 x 5/32 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#4-40 x 3/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A375", "url" : "https://www.mcmaster.com/91263A375/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#4-40 x 1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A376", "url" : "https://www.mcmaster.com/91263A376/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#4-40 x 5/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A136", "url" : "https://www.mcmaster.com/91263A136/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#4-40 x 3/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A501", "url" : "https://www.mcmaster.com/91263A501/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#4-40 x 7/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#4-40 x 1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A503", "url" : "https://www.mcmaster.com/91263A503/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#4-40 x 9/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#4-40 x 5/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A961", "url" : "https://www.mcmaster.com/91263A961/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#4-40 x 3/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A962", "url" : "https://www.mcmaster.com/91263A962/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#4-40 x 7/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#4-40 x 1 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#4-40 x 1-1/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#4-40 x 1-1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#4-40 x 1-1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#4-40 x 3/16 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A375", "url" : "https://www.mcmaster.com/91263A375/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#4-40 x 1/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A376", "url" : "https://www.mcmaster.com/91263A376/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#4-40 x 5/16 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A136", "url" : "https://www.mcmaster.com/91263A136/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#4-40 x 3/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A501", "url" : "https://www.mcmaster.com/91263A501/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#4-40 x 1/2 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A503", "url" : "https://www.mcmaster.com/91263A503/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#4-40 x 5/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A961", "url" : "https://www.mcmaster.com/91263A961/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#4-40 x 3/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A962", "url" : "https://www.mcmaster.com/91263A962/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + } + }, + FastenerSize.NO_6_32 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_09375 : { "standard" : { "name" : "#6-32 x 3/32 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A268", "url" : "https://www.mcmaster.com/91251A268/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_125 : { "standard" : { "name" : "#6-32 x 1/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A084", "url" : "https://www.mcmaster.com/91864A084/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#6-32 x 5/32 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A269", "url" : "https://www.mcmaster.com/91251A269/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#6-32 x 3/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A085", "url" : "https://www.mcmaster.com/91864A085/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#6-32 x 1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A144", "url" : "https://www.mcmaster.com/91251A144/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#6-32 x 5/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A019", "url" : "https://www.mcmaster.com/91864A019/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#6-32 x 3/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A146", "url" : "https://www.mcmaster.com/91251A146/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#6-32 x 7/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A023", "url" : "https://www.mcmaster.com/91864A023/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#6-32 x 1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A148", "url" : "https://www.mcmaster.com/91251A148/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#6-32 x 9/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A086", "url" : "https://www.mcmaster.com/91864A086/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#6-32 x 5/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A150", "url" : "https://www.mcmaster.com/91251A150/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#6-32 x 3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A151", "url" : "https://www.mcmaster.com/91251A151/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#6-32 x 7/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A152", "url" : "https://www.mcmaster.com/91251A152/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#6-32 x 1 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A153", "url" : "https://www.mcmaster.com/91251A153/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#6-32 x 1-1/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A870", "url" : "https://www.mcmaster.com/91251A870/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#6-32 x 1-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A155", "url" : "https://www.mcmaster.com/91251A155/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#6-32 x 1-1/4 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A112", "url" : "https://www.mcmaster.com/90044A112/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#6-32 x 1-3/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A874", "url" : "https://www.mcmaster.com/91251A874/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#6-32 x 1-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A157", "url" : "https://www.mcmaster.com/91251A157/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#6-32 x 1-5/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A875", "url" : "https://www.mcmaster.com/91251A875/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#6-32 x 1-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A158", "url" : "https://www.mcmaster.com/91251A158/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_875 : { "standard" : { "name" : "#6-32 x 1-7/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A270", "url" : "https://www.mcmaster.com/91251A270/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#6-32 x 2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A159", "url" : "https://www.mcmaster.com/91251A159/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#6-32 x 2-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A876", "url" : "https://www.mcmaster.com/91251A876/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#6-32 x 2-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A871", "url" : "https://www.mcmaster.com/91251A871/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#6-32 x 2-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A872", "url" : "https://www.mcmaster.com/91251A872/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#6-32 x 3 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A873", "url" : "https://www.mcmaster.com/91251A873/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#6-32 x 3-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A295", "url" : "https://www.mcmaster.com/90044A295/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#6-32 x 1/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A118", "url" : "https://www.mcmaster.com/90128A118/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#6-32 x 3/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A121", "url" : "https://www.mcmaster.com/90128A121/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#6-32 x 1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A144", "url" : "https://www.mcmaster.com/90128A144/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#6-32 x 5/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A145", "url" : "https://www.mcmaster.com/90128A145/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#6-32 x 3/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A146", "url" : "https://www.mcmaster.com/90128A146/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#6-32 x 7/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A312", "url" : "https://www.mcmaster.com/90128A312/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#6-32 x 1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A148", "url" : "https://www.mcmaster.com/90128A148/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#6-32 x 5/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A150", "url" : "https://www.mcmaster.com/90128A150/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#6-32 x 3/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A151", "url" : "https://www.mcmaster.com/90128A151/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#6-32 x 7/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A152", "url" : "https://www.mcmaster.com/90128A152/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#6-32 x 1-1/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#6-32 x 1-1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A160", "url" : "https://www.mcmaster.com/90128A160/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#6-32 x 1-1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A164", "url" : "https://www.mcmaster.com/90128A164/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_875 : { "standard" : { "name" : "#6-32 x 1-7/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#6-32 x 1/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A140", "url" : "https://www.mcmaster.com/91255A140/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#6-32 x 3/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A142", "url" : "https://www.mcmaster.com/91255A142/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#6-32 x 1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A144", "url" : "https://www.mcmaster.com/91255A144/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#6-32 x 5/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A145", "url" : "https://www.mcmaster.com/91255A145/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#6-32 x 3/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A146", "url" : "https://www.mcmaster.com/91255A146/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#6-32 x 7/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A133", "url" : "https://www.mcmaster.com/91255A133/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#6-32 x 1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A148", "url" : "https://www.mcmaster.com/91255A148/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#6-32 x 9/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A134", "url" : "https://www.mcmaster.com/91255A134/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#6-32 x 5/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A150", "url" : "https://www.mcmaster.com/91255A150/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#6-32 x 3/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A151", "url" : "https://www.mcmaster.com/91255A151/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#6-32 x 7/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A152", "url" : "https://www.mcmaster.com/91255A152/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#6-32 x 1 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A153", "url" : "https://www.mcmaster.com/91255A153/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#6-32 x 1 in Button Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#6-32 x 1-1/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A135", "url" : "https://www.mcmaster.com/91255A135/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#6-32 x 1-1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A155", "url" : "https://www.mcmaster.com/91255A155/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#6-32 x 1/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A259", "url" : "https://www.mcmaster.com/91306A259/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#6-32 x 3/16 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A260", "url" : "https://www.mcmaster.com/91306A260/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#6-32 x 1/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A320", "url" : "https://www.mcmaster.com/91306A320/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#6-32 x 3/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A322", "url" : "https://www.mcmaster.com/91306A322/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#6-32 x 7/16 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A262", "url" : "https://www.mcmaster.com/91306A262/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#6-32 x 1/2 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A324", "url" : "https://www.mcmaster.com/91306A324/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#6-32 x 5/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A327", "url" : "https://www.mcmaster.com/91306A327/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#6-32 x 3/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A263", "url" : "https://www.mcmaster.com/91306A263/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#6-32 x 1/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#6-32 x 5/32 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#6-32 x 3/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A505", "url" : "https://www.mcmaster.com/91263A505/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#6-32 x 1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A512", "url" : "https://www.mcmaster.com/91263A512/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#6-32 x 5/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A506", "url" : "https://www.mcmaster.com/91263A506/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#6-32 x 3/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A514", "url" : "https://www.mcmaster.com/91263A514/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#6-32 x 7/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#6-32 x 1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A516", "url" : "https://www.mcmaster.com/91263A516/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#6-32 x 9/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#6-32 x 5/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A507", "url" : "https://www.mcmaster.com/91263A507/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#6-32 x 3/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A518", "url" : "https://www.mcmaster.com/91263A518/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#6-32 x 7/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#6-32 x 1 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A520", "url" : "https://www.mcmaster.com/91263A520/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#6-32 x 1-1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#6-32 x 1-1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#6-32 x 1-3/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#6-32 x 3/16 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A505", "url" : "https://www.mcmaster.com/91263A505/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#6-32 x 1/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A512", "url" : "https://www.mcmaster.com/91263A512/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#6-32 x 5/16 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A506", "url" : "https://www.mcmaster.com/91263A506/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#6-32 x 3/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A514", "url" : "https://www.mcmaster.com/91263A514/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#6-32 x 1/2 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A516", "url" : "https://www.mcmaster.com/91263A516/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#6-32 x 5/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A507", "url" : "https://www.mcmaster.com/91263A507/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#6-32 x 3/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A518", "url" : "https://www.mcmaster.com/91263A518/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + } + }, + FastenerSize.NO_8_32 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_09375 : { "standard" : { "name" : "#8-32 x 3/32 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A271", "url" : "https://www.mcmaster.com/91251A271/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_125 : { "standard" : { "name" : "#8-32 x 1/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A179", "url" : "https://www.mcmaster.com/91251A179/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#8-32 x 5/32 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A272", "url" : "https://www.mcmaster.com/91251A272/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#8-32 x 3/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A180", "url" : "https://www.mcmaster.com/91251A180/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#8-32 x 1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A190", "url" : "https://www.mcmaster.com/91251A190/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#8-32 x 5/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A191", "url" : "https://www.mcmaster.com/91251A191/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#8-32 x 3/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A192", "url" : "https://www.mcmaster.com/91251A192/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#8-32 x 7/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A024", "url" : "https://www.mcmaster.com/91864A024/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#8-32 x 1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A194", "url" : "https://www.mcmaster.com/91251A194/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#8-32 x 9/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A033", "url" : "https://www.mcmaster.com/91864A033/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#8-32 x 5/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A196", "url" : "https://www.mcmaster.com/91251A196/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_6875 : { "standard" : { "name" : "#8-32 x 11/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A421", "url" : "https://www.mcmaster.com/90044A421/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#8-32 x 3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A197", "url" : "https://www.mcmaster.com/91251A197/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#8-32 x 7/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A198", "url" : "https://www.mcmaster.com/91251A198/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#8-32 x 1 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A199", "url" : "https://www.mcmaster.com/91251A199/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#8-32 x 1-1/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A025", "url" : "https://www.mcmaster.com/91864A025/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#8-32 x 1-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A201", "url" : "https://www.mcmaster.com/91251A201/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#8-32 x 1-3/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A026", "url" : "https://www.mcmaster.com/91864A026/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#8-32 x 1-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A203", "url" : "https://www.mcmaster.com/91251A203/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#8-32 x 1-1/2 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A511", "url" : "https://www.mcmaster.com/90044A511/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#8-32 x 1-5/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A027", "url" : "https://www.mcmaster.com/91864A027/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#8-32 x 1-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A082", "url" : "https://www.mcmaster.com/91251A082/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#8-32 x 1-3/4 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A512", "url" : "https://www.mcmaster.com/90044A512/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_875 : { "standard" : { "name" : "#8-32 x 1-7/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A188", "url" : "https://www.mcmaster.com/91251A188/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#8-32 x 2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A205", "url" : "https://www.mcmaster.com/91251A205/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#8-32 x 2 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A113", "url" : "https://www.mcmaster.com/90044A113/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#8-32 x 2-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A184", "url" : "https://www.mcmaster.com/91251A184/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#8-32 x 2-1/4 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A513", "url" : "https://www.mcmaster.com/90044A513/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#8-32 x 2-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A207", "url" : "https://www.mcmaster.com/91251A207/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#8-32 x 2-1/2 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A514", "url" : "https://www.mcmaster.com/90044A514/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#8-32 x 2-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A827", "url" : "https://www.mcmaster.com/91251A827/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#8-32 x 2-3/4 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A515", "url" : "https://www.mcmaster.com/90044A515/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#8-32 x 3 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A086", "url" : "https://www.mcmaster.com/91251A086/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#8-32 x 3 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A516", "url" : "https://www.mcmaster.com/90044A516/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_25 : { "standard" : { "name" : "#8-32 x 3-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A189", "url" : "https://www.mcmaster.com/91251A189/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#8-32 x 3-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A186", "url" : "https://www.mcmaster.com/91251A186/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_75 : { "standard" : { "name" : "#8-32 x 3-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A285", "url" : "https://www.mcmaster.com/91251A285/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "#8-32 x 4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A193", "url" : "https://www.mcmaster.com/91251A193/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4_5 : { "standard" : { "name" : "#8-32 x 4-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A297", "url" : "https://www.mcmaster.com/90044A297/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5 : { "standard" : { "name" : "#8-32 x 5 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A298", "url" : "https://www.mcmaster.com/90044A298/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#8-32 x 1/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A122", "url" : "https://www.mcmaster.com/90128A122/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#8-32 x 3/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A124", "url" : "https://www.mcmaster.com/90128A124/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#8-32 x 1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A191", "url" : "https://www.mcmaster.com/90128A191/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#8-32 x 5/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A125", "url" : "https://www.mcmaster.com/90128A125/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#8-32 x 3/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A192", "url" : "https://www.mcmaster.com/90128A192/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#8-32 x 7/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A313", "url" : "https://www.mcmaster.com/90128A313/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#8-32 x 1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A194", "url" : "https://www.mcmaster.com/90128A194/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#8-32 x 9/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A314", "url" : "https://www.mcmaster.com/90128A314/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#8-32 x 5/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A196", "url" : "https://www.mcmaster.com/90128A196/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#8-32 x 3/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A197", "url" : "https://www.mcmaster.com/90128A197/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#8-32 x 7/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A198", "url" : "https://www.mcmaster.com/90128A198/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#8-32 x 1 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A199", "url" : "https://www.mcmaster.com/90128A199/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#8-32 x 1-1/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A126", "url" : "https://www.mcmaster.com/90128A126/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#8-32 x 1-1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A201", "url" : "https://www.mcmaster.com/90128A201/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#8-32 x 1-1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A203", "url" : "https://www.mcmaster.com/90128A203/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#8-32 x 1-3/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A206", "url" : "https://www.mcmaster.com/90128A206/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#8-32 x 2-1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A213", "url" : "https://www.mcmaster.com/90128A213/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#8-32 x 1/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A162", "url" : "https://www.mcmaster.com/91255A162/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#8-32 x 5/32 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A163", "url" : "https://www.mcmaster.com/91255A163/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#8-32 x 3/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A189", "url" : "https://www.mcmaster.com/91255A189/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#8-32 x 1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A190", "url" : "https://www.mcmaster.com/91255A190/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#8-32 x 5/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A191", "url" : "https://www.mcmaster.com/91255A191/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#8-32 x 3/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A192", "url" : "https://www.mcmaster.com/91255A192/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#8-32 x 7/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A164", "url" : "https://www.mcmaster.com/91255A164/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#8-32 x 1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A194", "url" : "https://www.mcmaster.com/91255A194/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#8-32 x 9/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A165", "url" : "https://www.mcmaster.com/91255A165/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#8-32 x 5/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A196", "url" : "https://www.mcmaster.com/91255A196/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#8-32 x 3/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A197", "url" : "https://www.mcmaster.com/91255A197/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#8-32 x 7/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A166", "url" : "https://www.mcmaster.com/91255A166/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#8-32 x 1 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A199", "url" : "https://www.mcmaster.com/91255A199/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#8-32 x 1-1/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A167", "url" : "https://www.mcmaster.com/91255A167/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#8-32 x 1-1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A201", "url" : "https://www.mcmaster.com/91255A201/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#8-32 x 1-3/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A168", "url" : "https://www.mcmaster.com/91255A168/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#8-32 x 1-1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A203", "url" : "https://www.mcmaster.com/91255A203/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#8-32 x 1-3/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A169", "url" : "https://www.mcmaster.com/91255A169/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#8-32 x 2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A205", "url" : "https://www.mcmaster.com/91255A205/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#8-32 x 2-1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A206", "url" : "https://www.mcmaster.com/91255A206/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#8-32 x 2-1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A811", "url" : "https://www.mcmaster.com/91255A811/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#8-32 x 3 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A812", "url" : "https://www.mcmaster.com/91255A812/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#8-32 x 3/16 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A264", "url" : "https://www.mcmaster.com/91306A264/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#8-32 x 1/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A333", "url" : "https://www.mcmaster.com/91306A333/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#8-32 x 5/16 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A265", "url" : "https://www.mcmaster.com/91306A265/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#8-32 x 3/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A335", "url" : "https://www.mcmaster.com/91306A335/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#8-32 x 7/16 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A266", "url" : "https://www.mcmaster.com/91306A266/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#8-32 x 1/2 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A337", "url" : "https://www.mcmaster.com/91306A337/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#8-32 x 5/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A338", "url" : "https://www.mcmaster.com/91306A338/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#8-32 x 3/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A339", "url" : "https://www.mcmaster.com/91306A339/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#8-32 x 7/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A267", "url" : "https://www.mcmaster.com/91306A267/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#8-32 x 1 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A340", "url" : "https://www.mcmaster.com/91306A340/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#8-32 x 1-1/2 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A268", "url" : "https://www.mcmaster.com/91306A268/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#8-32 x 5/32 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#8-32 x 3/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#8-32 x 1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A521", "url" : "https://www.mcmaster.com/91263A521/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#8-32 x 5/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A523", "url" : "https://www.mcmaster.com/91263A523/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#8-32 x 3/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A522", "url" : "https://www.mcmaster.com/91263A522/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#8-32 x 7/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#8-32 x 1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A524", "url" : "https://www.mcmaster.com/91263A524/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#8-32 x 9/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#8-32 x 5/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A525", "url" : "https://www.mcmaster.com/91263A525/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#8-32 x 3/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A526", "url" : "https://www.mcmaster.com/91263A526/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#8-32 x 7/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A527", "url" : "https://www.mcmaster.com/91263A527/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#8-32 x 1 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A528", "url" : "https://www.mcmaster.com/91263A528/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#8-32 x 1-1/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#8-32 x 1-1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A142", "url" : "https://www.mcmaster.com/91263A142/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#8-32 x 1-3/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#8-32 x 1-1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A145", "url" : "https://www.mcmaster.com/91263A145/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#8-32 x 1-5/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#8-32 x 1-3/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#8-32 x 2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#8-32 x 2-1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#8-32 x 2-1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#8-32 x 3 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "#8-32 x 1/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A521", "url" : "https://www.mcmaster.com/91263A521/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#8-32 x 5/16 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A523", "url" : "https://www.mcmaster.com/91263A523/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#8-32 x 3/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A522", "url" : "https://www.mcmaster.com/91263A522/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#8-32 x 1/2 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A524", "url" : "https://www.mcmaster.com/91263A524/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#8-32 x 5/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A525", "url" : "https://www.mcmaster.com/91263A525/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#8-32 x 3/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A526", "url" : "https://www.mcmaster.com/91263A526/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#8-32 x 7/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A527", "url" : "https://www.mcmaster.com/91263A527/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#8-32 x 1 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A528", "url" : "https://www.mcmaster.com/91263A528/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#8-32 x 1-1/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A142", "url" : "https://www.mcmaster.com/91263A142/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#8-32 x 1-1/2 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A145", "url" : "https://www.mcmaster.com/91263A145/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + } + }, + FastenerSize.NO_10_32 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_15625 : { "standard" : { "name" : "#10-32 x 5/32 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A518", "url" : "https://www.mcmaster.com/91251A518/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#10-32 x 3/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A901", "url" : "https://www.mcmaster.com/91251A901/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A338", "url" : "https://www.mcmaster.com/91251A338/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#10-32 x 5/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A337", "url" : "https://www.mcmaster.com/91251A337/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A340", "url" : "https://www.mcmaster.com/91251A340/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#10-32 x 7/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A350", "url" : "https://www.mcmaster.com/91251A350/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A342", "url" : "https://www.mcmaster.com/91251A342/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#10-32 x 9/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A356", "url" : "https://www.mcmaster.com/91251A356/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A344", "url" : "https://www.mcmaster.com/91251A344/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_6875 : { "standard" : { "name" : "#10-32 x 11/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A201", "url" : "https://www.mcmaster.com/90044A201/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A345", "url" : "https://www.mcmaster.com/91251A345/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#10-32 x 7/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A346", "url" : "https://www.mcmaster.com/91251A346/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A347", "url" : "https://www.mcmaster.com/91251A347/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#10-32 x 1-1/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A348", "url" : "https://www.mcmaster.com/91251A348/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A349", "url" : "https://www.mcmaster.com/91251A349/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#10-32 x 1-3/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A202", "url" : "https://www.mcmaster.com/90044A202/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A351", "url" : "https://www.mcmaster.com/91251A351/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#10-32 x 1-1/2 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A118", "url" : "https://www.mcmaster.com/90044A118/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#10-32 x 1-5/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A287", "url" : "https://www.mcmaster.com/91251A287/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A352", "url" : "https://www.mcmaster.com/91251A352/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#10-32 x 1-3/4 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A119", "url" : "https://www.mcmaster.com/90044A119/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_875 : { "standard" : { "name" : "#10-32 x 1-7/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A288", "url" : "https://www.mcmaster.com/91251A288/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A353", "url" : "https://www.mcmaster.com/91251A353/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#10-32 x 2 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A120", "url" : "https://www.mcmaster.com/90044A120/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#10-32 x 2-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A354", "url" : "https://www.mcmaster.com/91251A354/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#10-32 x 2-1/4 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A523", "url" : "https://www.mcmaster.com/90044A523/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#10-32 x 2-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A355", "url" : "https://www.mcmaster.com/91251A355/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#10-32 x 2-1/2 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A121", "url" : "https://www.mcmaster.com/90044A121/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#10-32 x 2-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A359", "url" : "https://www.mcmaster.com/91251A359/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#10-32 x 2-3/4 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A524", "url" : "https://www.mcmaster.com/90044A524/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#10-32 x 3 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A360", "url" : "https://www.mcmaster.com/91251A360/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#10-32 x 3 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A122", "url" : "https://www.mcmaster.com/90044A122/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#10-32 x 3-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A361", "url" : "https://www.mcmaster.com/91251A361/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "#10-32 x 3-1/2 in Socket Head Screw (Fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "90044A525", "url" : "https://www.mcmaster.com/90044A525/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_75 : { "standard" : { "name" : "#10-32 x 3-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A289", "url" : "https://www.mcmaster.com/91251A289/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "#10-32 x 4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A364", "url" : "https://www.mcmaster.com/91251A364/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4_5 : { "standard" : { "name" : "#10-32 x 4-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A357", "url" : "https://www.mcmaster.com/91251A357/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5 : { "standard" : { "name" : "#10-32 x 5 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A358", "url" : "https://www.mcmaster.com/91251A358/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5_5 : { "standard" : { "name" : "#10-32 x 5-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A906", "url" : "https://www.mcmaster.com/91251A906/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_6 : { "standard" : { "name" : "#10-32 x 6 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A907", "url" : "https://www.mcmaster.com/91251A907/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_6_5 : { "standard" : { "name" : "#10-32 x 6-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A262", "url" : "https://www.mcmaster.com/90044A262/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_7 : { "standard" : { "name" : "#10-32 x 7 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A263", "url" : "https://www.mcmaster.com/90044A263/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#10-32 x 3/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A129", "url" : "https://www.mcmaster.com/90128A129/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A932", "url" : "https://www.mcmaster.com/90128A932/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#10-32 x 5/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A131", "url" : "https://www.mcmaster.com/90128A131/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A940", "url" : "https://www.mcmaster.com/90128A940/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#10-32 x 7/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A315", "url" : "https://www.mcmaster.com/90128A315/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A942", "url" : "https://www.mcmaster.com/90128A942/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#10-32 x 9/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A316", "url" : "https://www.mcmaster.com/90128A316/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A944", "url" : "https://www.mcmaster.com/90128A944/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A945", "url" : "https://www.mcmaster.com/90128A945/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#10-32 x 7/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A946", "url" : "https://www.mcmaster.com/90128A946/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A947", "url" : "https://www.mcmaster.com/90128A947/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A948", "url" : "https://www.mcmaster.com/90128A948/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#10-32 x 1-3/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A132", "url" : "https://www.mcmaster.com/90128A132/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A951", "url" : "https://www.mcmaster.com/90128A951/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A953", "url" : "https://www.mcmaster.com/90128A953/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A955", "url" : "https://www.mcmaster.com/90128A955/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#10-32 x 2-1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A957", "url" : "https://www.mcmaster.com/90128A957/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#10-32 x 2-1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A961", "url" : "https://www.mcmaster.com/90128A961/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#10-32 x 2-3/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A965", "url" : "https://www.mcmaster.com/90128A965/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#10-32 x 3 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A969", "url" : "https://www.mcmaster.com/90128A969/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#10-32 x 3-1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A973", "url" : "https://www.mcmaster.com/90128A973/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_4 : { "standard" : { "name" : "#10-32 x 4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A977", "url" : "https://www.mcmaster.com/90128A977/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_125 : { "standard" : { "name" : "#10-32 x 1/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A024", "url" : "https://www.mcmaster.com/91255A024/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#10-32 x 3/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A025", "url" : "https://www.mcmaster.com/91255A025/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A261", "url" : "https://www.mcmaster.com/91255A261/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#10-32 x 5/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A262", "url" : "https://www.mcmaster.com/91255A262/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A263", "url" : "https://www.mcmaster.com/91255A263/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#10-32 x 7/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A026", "url" : "https://www.mcmaster.com/91255A026/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A265", "url" : "https://www.mcmaster.com/91255A265/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#10-32 x 9/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A027", "url" : "https://www.mcmaster.com/91255A027/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A267", "url" : "https://www.mcmaster.com/91255A267/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A269", "url" : "https://www.mcmaster.com/91255A269/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#10-32 x 7/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A271", "url" : "https://www.mcmaster.com/91255A271/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A273", "url" : "https://www.mcmaster.com/91255A273/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#10-32 x 1-1/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A028", "url" : "https://www.mcmaster.com/91255A028/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A274", "url" : "https://www.mcmaster.com/91255A274/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#10-32 x 1-3/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A272", "url" : "https://www.mcmaster.com/91255A272/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A275", "url" : "https://www.mcmaster.com/91255A275/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#10-32 x 1-5/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A277", "url" : "https://www.mcmaster.com/91255A277/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A276", "url" : "https://www.mcmaster.com/91255A276/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A278", "url" : "https://www.mcmaster.com/91255A278/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#10-32 x 2-1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A815", "url" : "https://www.mcmaster.com/91255A815/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#10-32 x 2-1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A029", "url" : "https://www.mcmaster.com/91255A029/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#10-32 x 3 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A030", "url" : "https://www.mcmaster.com/91255A030/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A352", "url" : "https://www.mcmaster.com/91306A352/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#10-32 x 5/16 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A272", "url" : "https://www.mcmaster.com/91306A272/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A354", "url" : "https://www.mcmaster.com/91306A354/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#10-32 x 7/16 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A273", "url" : "https://www.mcmaster.com/91306A273/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A356", "url" : "https://www.mcmaster.com/91306A356/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A274", "url" : "https://www.mcmaster.com/91306A274/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A358", "url" : "https://www.mcmaster.com/91306A358/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#10-32 x 7/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A275", "url" : "https://www.mcmaster.com/91306A275/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A276", "url" : "https://www.mcmaster.com/91306A276/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A714", "url" : "https://www.mcmaster.com/91306A714/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A277", "url" : "https://www.mcmaster.com/91306A277/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A715", "url" : "https://www.mcmaster.com/91306A715/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_1875 : { "standard" : { "name" : "#10-32 x 3/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A540", "url" : "https://www.mcmaster.com/91263A540/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#10-32 x 5/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A157", "url" : "https://www.mcmaster.com/91263A157/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A542", "url" : "https://www.mcmaster.com/91263A542/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "#10-32 x 7/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A544", "url" : "https://www.mcmaster.com/91263A544/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "#10-32 x 9/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A543", "url" : "https://www.mcmaster.com/91263A543/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A546", "url" : "https://www.mcmaster.com/91263A546/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#10-32 x 7/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A547", "url" : "https://www.mcmaster.com/91263A547/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A548", "url" : "https://www.mcmaster.com/91263A548/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#10-32 x 1-1/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A160", "url" : "https://www.mcmaster.com/91263A160/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#10-32 x 1-3/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A550", "url" : "https://www.mcmaster.com/91263A550/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#10-32 x 1-5/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#10-32 x 2-1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#10-32 x 2-1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A163", "url" : "https://www.mcmaster.com/91263A163/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#10-32 x 3 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#10-32 x 3-1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "#10-32 x 4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A540", "url" : "https://www.mcmaster.com/91263A540/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#10-32 x 5/16 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A157", "url" : "https://www.mcmaster.com/91263A157/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A542", "url" : "https://www.mcmaster.com/91263A542/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A544", "url" : "https://www.mcmaster.com/91263A544/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A543", "url" : "https://www.mcmaster.com/91263A543/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A546", "url" : "https://www.mcmaster.com/91263A546/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#10-32 x 7/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A547", "url" : "https://www.mcmaster.com/91263A547/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A548", "url" : "https://www.mcmaster.com/91263A548/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A160", "url" : "https://www.mcmaster.com/91263A160/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A550", "url" : "https://www.mcmaster.com/91263A550/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + } + }, + FastenerSize.QUARTER_20 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "1/4-20 x 1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A533", "url" : "https://www.mcmaster.com/91251A533/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "1/4-20 x 5/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A061", "url" : "https://www.mcmaster.com/91864A061/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "1/4-20 x 3/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A535", "url" : "https://www.mcmaster.com/91251A535/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "1/4-20 x 7/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91864A062", "url" : "https://www.mcmaster.com/91864A062/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "1/4-20 x 1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A537", "url" : "https://www.mcmaster.com/91251A537/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "1/4-20 x 9/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A538", "url" : "https://www.mcmaster.com/91251A538/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "1/4-20 x 5/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A539", "url" : "https://www.mcmaster.com/91251A539/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_6875 : { "standard" : { "name" : "1/4-20 x 11/16 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A423", "url" : "https://www.mcmaster.com/90044A423/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "1/4-20 x 3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A540", "url" : "https://www.mcmaster.com/91251A540/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "1/4-20 x 7/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A541", "url" : "https://www.mcmaster.com/91251A541/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "1/4-20 x 1 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A542", "url" : "https://www.mcmaster.com/91251A542/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "1/4-20 x 1-1/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A560", "url" : "https://www.mcmaster.com/91251A560/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "1/4-20 x 1-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A544", "url" : "https://www.mcmaster.com/91251A544/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "1/4-20 x 1-3/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A543", "url" : "https://www.mcmaster.com/91251A543/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "1/4-20 x 1-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A123", "url" : "https://www.mcmaster.com/90044A123/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "1/4-20 x 1-5/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A527", "url" : "https://www.mcmaster.com/91251A527/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "1/4-20 x 1-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A124", "url" : "https://www.mcmaster.com/90044A124/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_875 : { "standard" : { "name" : "1/4-20 x 1-7/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A548", "url" : "https://www.mcmaster.com/91251A548/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "1/4-20 x 2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A125", "url" : "https://www.mcmaster.com/90044A125/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "1/4-20 x 2-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A126", "url" : "https://www.mcmaster.com/90044A126/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_375 : { "standard" : { "name" : "1/4-20 x 2-3/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A425", "url" : "https://www.mcmaster.com/90044A425/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "1/4-20 x 2-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A127", "url" : "https://www.mcmaster.com/90044A127/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_625 : { "standard" : { "name" : "1/4-20 x 2-5/8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A426", "url" : "https://www.mcmaster.com/90044A426/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "1/4-20 x 2-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A128", "url" : "https://www.mcmaster.com/90044A128/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "1/4-20 x 3 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A129", "url" : "https://www.mcmaster.com/90044A129/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_25 : { "standard" : { "name" : "1/4-20 x 3-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A526", "url" : "https://www.mcmaster.com/90044A526/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "1/4-20 x 3-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A316", "url" : "https://www.mcmaster.com/90044A316/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_75 : { "standard" : { "name" : "1/4-20 x 3-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A527", "url" : "https://www.mcmaster.com/90044A527/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "1/4-20 x 4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A131", "url" : "https://www.mcmaster.com/90044A131/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4_25 : { "standard" : { "name" : "1/4-20 x 4-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A559", "url" : "https://www.mcmaster.com/91251A559/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4_5 : { "standard" : { "name" : "1/4-20 x 4-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A089", "url" : "https://www.mcmaster.com/91251A089/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5 : { "standard" : { "name" : "1/4-20 x 5 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A090", "url" : "https://www.mcmaster.com/91251A090/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5_25 : { "standard" : { "name" : "1/4-20 x 5-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A293", "url" : "https://www.mcmaster.com/91251A293/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5_5 : { "standard" : { "name" : "1/4-20 x 5-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A093", "url" : "https://www.mcmaster.com/91251A093/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5_75 : { "standard" : { "name" : "1/4-20 x 5-3/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A294", "url" : "https://www.mcmaster.com/91251A294/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_6 : { "standard" : { "name" : "1/4-20 x 6 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A095", "url" : "https://www.mcmaster.com/91251A095/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_6_25 : { "standard" : { "name" : "1/4-20 x 6-1/4 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A562", "url" : "https://www.mcmaster.com/91251A562/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_6_5 : { "standard" : { "name" : "1/4-20 x 6-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A563", "url" : "https://www.mcmaster.com/91251A563/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_7 : { "standard" : { "name" : "1/4-20 x 7 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A908", "url" : "https://www.mcmaster.com/91251A908/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_7_5 : { "standard" : { "name" : "1/4-20 x 7-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A923", "url" : "https://www.mcmaster.com/91251A923/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_8 : { "standard" : { "name" : "1/4-20 x 8 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91251A566", "url" : "https://www.mcmaster.com/91251A566/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_8_5 : { "standard" : { "name" : "1/4-20 x 8-1/2 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A299", "url" : "https://www.mcmaster.com/90044A299/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_9 : { "standard" : { "name" : "1/4-20 x 9 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A311", "url" : "https://www.mcmaster.com/90044A311/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_10 : { "standard" : { "name" : "1/4-20 x 10 in Socket Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "90044A312", "url" : "https://www.mcmaster.com/90044A312/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "1/4-20 x 1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A239", "url" : "https://www.mcmaster.com/90128A239/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "1/4-20 x 3/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A241", "url" : "https://www.mcmaster.com/90128A241/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "1/4-20 x 7/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A317", "url" : "https://www.mcmaster.com/90128A317/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "1/4-20 x 1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A242", "url" : "https://www.mcmaster.com/90128A242/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "1/4-20 x 9/16 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A318", "url" : "https://www.mcmaster.com/90128A318/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "1/4-20 x 5/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A243", "url" : "https://www.mcmaster.com/90128A243/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "1/4-20 x 3/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A245", "url" : "https://www.mcmaster.com/90128A245/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "1/4-20 x 7/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A246", "url" : "https://www.mcmaster.com/90128A246/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1 : { "standard" : { "name" : "1/4-20 x 1 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A247", "url" : "https://www.mcmaster.com/90128A247/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "1/4-20 x 1-1/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A133", "url" : "https://www.mcmaster.com/90128A133/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "1/4-20 x 1-1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A250", "url" : "https://www.mcmaster.com/90128A250/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "1/4-20 x 1-3/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A301", "url" : "https://www.mcmaster.com/90128A301/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "1/4-20 x 1-1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A251", "url" : "https://www.mcmaster.com/90128A251/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "1/4-20 x 1-5/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A319", "url" : "https://www.mcmaster.com/90128A319/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "1/4-20 x 1-3/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A252", "url" : "https://www.mcmaster.com/90128A252/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_875 : { "standard" : { "name" : "1/4-20 x 1-7/8 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90044A424", "url" : "https://www.mcmaster.com/90044A424/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2 : { "standard" : { "name" : "1/4-20 x 2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A253", "url" : "https://www.mcmaster.com/90128A253/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "1/4-20 x 2-1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A254", "url" : "https://www.mcmaster.com/90128A254/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "1/4-20 x 2-1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A255", "url" : "https://www.mcmaster.com/90128A255/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "1/4-20 x 2-3/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A259", "url" : "https://www.mcmaster.com/90128A259/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_3 : { "standard" : { "name" : "1/4-20 x 3 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A554", "url" : "https://www.mcmaster.com/90128A554/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_3_25 : { "standard" : { "name" : "1/4-20 x 3-1/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A557", "url" : "https://www.mcmaster.com/90128A557/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "1/4-20 x 3-1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A560", "url" : "https://www.mcmaster.com/90128A560/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_3_75 : { "standard" : { "name" : "1/4-20 x 3-3/4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A563", "url" : "https://www.mcmaster.com/90128A563/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_4 : { "standard" : { "name" : "1/4-20 x 4 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A566", "url" : "https://www.mcmaster.com/90128A566/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_4_5 : { "standard" : { "name" : "1/4-20 x 4-1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A569", "url" : "https://www.mcmaster.com/90128A569/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_5 : { "standard" : { "name" : "1/4-20 x 5 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A572", "url" : "https://www.mcmaster.com/90128A572/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_5_5 : { "standard" : { "name" : "1/4-20 x 5-1/2 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A575", "url" : "https://www.mcmaster.com/90128A575/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_6 : { "standard" : { "name" : "1/4-20 x 6 in Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A577", "url" : "https://www.mcmaster.com/90128A577/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_1875 : { "standard" : { "name" : "1/4-20 x 3/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A521", "url" : "https://www.mcmaster.com/91255A521/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_25 : { "standard" : { "name" : "1/4-20 x 1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A533", "url" : "https://www.mcmaster.com/91255A533/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "1/4-20 x 5/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A522", "url" : "https://www.mcmaster.com/91255A522/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "1/4-20 x 3/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A535", "url" : "https://www.mcmaster.com/91255A535/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "1/4-20 x 7/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A523", "url" : "https://www.mcmaster.com/91255A523/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "1/4-20 x 1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A537", "url" : "https://www.mcmaster.com/91255A537/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "1/4-20 x 9/16 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A524", "url" : "https://www.mcmaster.com/91255A524/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "1/4-20 x 5/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A539", "url" : "https://www.mcmaster.com/91255A539/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "1/4-20 x 3/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A540", "url" : "https://www.mcmaster.com/91255A540/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "1/4-20 x 7/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A541", "url" : "https://www.mcmaster.com/91255A541/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "1/4-20 x 1 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A542", "url" : "https://www.mcmaster.com/91255A542/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "1/4-20 x 1-1/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A525", "url" : "https://www.mcmaster.com/91255A525/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "1/4-20 x 1-1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A544", "url" : "https://www.mcmaster.com/91255A544/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "1/4-20 x 1-3/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A526", "url" : "https://www.mcmaster.com/91255A526/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "1/4-20 x 1-1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A546", "url" : "https://www.mcmaster.com/91255A546/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "1/4-20 x 1-5/8 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A527", "url" : "https://www.mcmaster.com/91255A527/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "1/4-20 x 1-3/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A548", "url" : "https://www.mcmaster.com/91255A548/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "1/4-20 x 2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A545", "url" : "https://www.mcmaster.com/91255A545/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "1/4-20 x 2-1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A528", "url" : "https://www.mcmaster.com/91255A528/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "1/4-20 x 2-1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A547", "url" : "https://www.mcmaster.com/91255A547/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "1/4-20 x 2-3/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A529", "url" : "https://www.mcmaster.com/91255A529/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "1/4-20 x 3 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A549", "url" : "https://www.mcmaster.com/91255A549/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_25 : { "standard" : { "name" : "1/4-20 x 3-1/4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A819", "url" : "https://www.mcmaster.com/91255A819/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "1/4-20 x 3-1/2 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A531", "url" : "https://www.mcmaster.com/91255A531/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "1/4-20 x 4 in Button Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91255A532", "url" : "https://www.mcmaster.com/91255A532/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "1/4-20 x 1/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A371", "url" : "https://www.mcmaster.com/91306A371/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "1/4-20 x 5/16 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A278", "url" : "https://www.mcmaster.com/91306A278/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "1/4-20 x 3/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A373", "url" : "https://www.mcmaster.com/91306A373/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "1/4-20 x 1/2 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A375", "url" : "https://www.mcmaster.com/91306A375/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "1/4-20 x 5/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A377", "url" : "https://www.mcmaster.com/91306A377/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "1/4-20 x 3/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A379", "url" : "https://www.mcmaster.com/91306A379/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "1/4-20 x 7/8 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A279", "url" : "https://www.mcmaster.com/91306A279/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1 : { "standard" : { "name" : "1/4-20 x 1 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A383", "url" : "https://www.mcmaster.com/91306A383/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "1/4-20 x 1-1/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A280", "url" : "https://www.mcmaster.com/91306A280/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "1/4-20 x 1-1/2 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A384", "url" : "https://www.mcmaster.com/91306A384/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "1/4-20 x 1-3/4 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A281", "url" : "https://www.mcmaster.com/91306A281/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2 : { "standard" : { "name" : "1/4-20 x 2 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A282", "url" : "https://www.mcmaster.com/91306A282/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "1/4-20 x 2-1/2 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A716", "url" : "https://www.mcmaster.com/91306A716/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_3 : { "standard" : { "name" : "1/4-20 x 3 in Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A717", "url" : "https://www.mcmaster.com/91306A717/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "1/4-20 x 1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "1/4-20 x 3/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A551", "url" : "https://www.mcmaster.com/91263A551/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_4375 : { "standard" : { "name" : "1/4-20 x 7/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "1/4-20 x 1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A553", "url" : "https://www.mcmaster.com/91263A553/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5625 : { "standard" : { "name" : "1/4-20 x 9/16 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "1/4-20 x 5/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A556", "url" : "https://www.mcmaster.com/91263A556/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "1/4-20 x 3/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A559", "url" : "https://www.mcmaster.com/91263A559/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "1/4-20 x 7/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A560", "url" : "https://www.mcmaster.com/91263A560/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "1/4-20 x 1 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A562", "url" : "https://www.mcmaster.com/91263A562/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "1/4-20 x 1-1/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A166", "url" : "https://www.mcmaster.com/91263A166/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "1/4-20 x 1-1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A563", "url" : "https://www.mcmaster.com/91263A563/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "1/4-20 x 1-3/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "1/4-20 x 1-1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A564", "url" : "https://www.mcmaster.com/91263A564/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "1/4-20 x 1-5/8 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "1/4-20 x 1-3/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A565", "url" : "https://www.mcmaster.com/91263A565/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "1/4-20 x 2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A566", "url" : "https://www.mcmaster.com/91263A566/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "1/4-20 x 2-1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A567", "url" : "https://www.mcmaster.com/91263A567/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "1/4-20 x 2-1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A568", "url" : "https://www.mcmaster.com/91263A568/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "1/4-20 x 2-3/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A569", "url" : "https://www.mcmaster.com/91263A569/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "1/4-20 x 3 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A570", "url" : "https://www.mcmaster.com/91263A570/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_25 : { "standard" : { "name" : "1/4-20 x 3-1/4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "1/4-20 x 3-1/2 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A169", "url" : "https://www.mcmaster.com/91263A169/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "1/4-20 x 4 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "91263A172", "url" : "https://www.mcmaster.com/91263A172/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5 : { "standard" : { "name" : "1/4-20 x 5 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_6 : { "standard" : { "name" : "1/4-20 x 6 in Flat Head Screw", "vendor" : "McMaster-Carr", "partNumber" : "null", "url" : "https://www.mcmaster.com/null/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_375 : { "standard" : { "name" : "1/4-20 x 3/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A551", "url" : "https://www.mcmaster.com/91263A551/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "1/4-20 x 1/2 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A553", "url" : "https://www.mcmaster.com/91263A553/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "1/4-20 x 5/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A556", "url" : "https://www.mcmaster.com/91263A556/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "1/4-20 x 3/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A559", "url" : "https://www.mcmaster.com/91263A559/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "1/4-20 x 7/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A560", "url" : "https://www.mcmaster.com/91263A560/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1 : { "standard" : { "name" : "1/4-20 x 1 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A562", "url" : "https://www.mcmaster.com/91263A562/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "1/4-20 x 1-1/8 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A166", "url" : "https://www.mcmaster.com/91263A166/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "1/4-20 x 1-1/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A563", "url" : "https://www.mcmaster.com/91263A563/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "1/4-20 x 1-1/2 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A564", "url" : "https://www.mcmaster.com/91263A564/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "1/4-20 x 1-3/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A565", "url" : "https://www.mcmaster.com/91263A565/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2 : { "standard" : { "name" : "1/4-20 x 2 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A566", "url" : "https://www.mcmaster.com/91263A566/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "1/4-20 x 2-1/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A567", "url" : "https://www.mcmaster.com/91263A567/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "1/4-20 x 2-1/2 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A568", "url" : "https://www.mcmaster.com/91263A568/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "1/4-20 x 2-3/4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A569", "url" : "https://www.mcmaster.com/91263A569/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_3 : { "standard" : { "name" : "1/4-20 x 3 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A570", "url" : "https://www.mcmaster.com/91263A570/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "1/4-20 x 3-1/2 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A169", "url" : "https://www.mcmaster.com/91263A169/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_4 : { "standard" : { "name" : "1/4-20 x 4 in Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A172", "url" : "https://www.mcmaster.com/91263A172/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + } + }, + FastenerSize.M3 : { + ScrewHead.SOCKET : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_3 : { "standard" : { "name" : "M3 x 3 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "90751A173", "url" : "https://www.mcmaster.com/90751A173/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_4 : { "standard" : { "name" : "M3 x 4 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A109", "url" : "https://www.mcmaster.com/91292A109/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A110", "url" : "https://www.mcmaster.com/91292A110/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A111", "url" : "https://www.mcmaster.com/91292A111/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A112", "url" : "https://www.mcmaster.com/91292A112/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A113", "url" : "https://www.mcmaster.com/91292A113/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A114", "url" : "https://www.mcmaster.com/91292A114/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M3 x 14 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A027", "url" : "https://www.mcmaster.com/91292A027/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M3 x 15 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A346", "url" : "https://www.mcmaster.com/91292A346/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A115", "url" : "https://www.mcmaster.com/91292A115/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M3 x 18 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A029", "url" : "https://www.mcmaster.com/91292A029/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M3 x 20 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A123", "url" : "https://www.mcmaster.com/91292A123/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M3 x 22 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A801", "url" : "https://www.mcmaster.com/91292A801/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A020", "url" : "https://www.mcmaster.com/91292A020/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M3 x 30 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A022", "url" : "https://www.mcmaster.com/91292A022/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M3 x 35 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A033", "url" : "https://www.mcmaster.com/91292A033/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M3 x 40 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A024", "url" : "https://www.mcmaster.com/91292A024/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M3 x 45 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A025", "url" : "https://www.mcmaster.com/91292A025/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M3 x 50 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A026", "url" : "https://www.mcmaster.com/91292A026/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M3 x 55 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A314", "url" : "https://www.mcmaster.com/91292A314/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_60 : { "standard" : { "name" : "M3 x 60 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A267", "url" : "https://www.mcmaster.com/91292A267/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_65 : { "standard" : { "name" : "M3 x 65 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A315", "url" : "https://www.mcmaster.com/91292A315/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_70 : { "standard" : { "name" : "M3 x 70 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A316", "url" : "https://www.mcmaster.com/91292A316/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + }, + ScrewFinish.BLACK : { + ScrewLength.MM_4 : { "standard" : { "name" : "M3 x 4 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A109", "url" : "https://www.mcmaster.com/91290A109/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A110", "url" : "https://www.mcmaster.com/91290A110/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A111", "url" : "https://www.mcmaster.com/91290A111/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A400", "url" : "https://www.mcmaster.com/91290A400/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A115", "url" : "https://www.mcmaster.com/91290A115/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A500", "url" : "https://www.mcmaster.com/91290A500/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M3 x 14 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A600", "url" : "https://www.mcmaster.com/91290A600/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M3 x 15 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A572", "url" : "https://www.mcmaster.com/91290A572/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A120", "url" : "https://www.mcmaster.com/91290A120/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M3 x 18 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A121", "url" : "https://www.mcmaster.com/91290A121/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M3 x 20 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A123", "url" : "https://www.mcmaster.com/91290A123/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M3 x 22 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A124", "url" : "https://www.mcmaster.com/91290A124/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A125", "url" : "https://www.mcmaster.com/91290A125/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M3 x 30 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A130", "url" : "https://www.mcmaster.com/91290A130/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "M3 x 30 mm Socket Head Screw (Black, fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "91290A171", "url" : "https://www.mcmaster.com/91290A171/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M3 x 35 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A135", "url" : "https://www.mcmaster.com/91290A135/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M3 x 40 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A136", "url" : "https://www.mcmaster.com/91290A136/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M3 x 45 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A079", "url" : "https://www.mcmaster.com/91290A079/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M3 x 50 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A137", "url" : "https://www.mcmaster.com/91290A137/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M3 x 55 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A573", "url" : "https://www.mcmaster.com/91290A573/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_60 : { "standard" : { "name" : "M3 x 60 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A181", "url" : "https://www.mcmaster.com/91290A181/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_70 : { "standard" : { "name" : "M3 x 70 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A297", "url" : "https://www.mcmaster.com/91290A297/", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A187", "url" : "https://www.mcmaster.com/90128A187/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "95263A134", "url" : "https://www.mcmaster.com/95263A134/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "95263A146", "url" : "https://www.mcmaster.com/95263A146/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M3 x 15 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A331", "url" : "https://www.mcmaster.com/90128A331/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "95263A158", "url" : "https://www.mcmaster.com/95263A158/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M3 x 20 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A204", "url" : "https://www.mcmaster.com/90128A204/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A205", "url" : "https://www.mcmaster.com/90128A205/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_3 : { "standard" : { "name" : "M3 x 3 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A287", "url" : "https://www.mcmaster.com/92095A287/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_4 : { "standard" : { "name" : "M3 x 4 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A471", "url" : "https://www.mcmaster.com/92095A471/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A177", "url" : "https://www.mcmaster.com/92095A177/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A179", "url" : "https://www.mcmaster.com/92095A179/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A181", "url" : "https://www.mcmaster.com/92095A181/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A182", "url" : "https://www.mcmaster.com/92095A182/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A183", "url" : "https://www.mcmaster.com/92095A183/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M3 x 14 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A168", "url" : "https://www.mcmaster.com/92095A168/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M3 x 15 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A119", "url" : "https://www.mcmaster.com/92095A119/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A184", "url" : "https://www.mcmaster.com/92095A184/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M3 x 18 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A472", "url" : "https://www.mcmaster.com/92095A472/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M3 x 20 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A185", "url" : "https://www.mcmaster.com/92095A185/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M3 x 22 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A473", "url" : "https://www.mcmaster.com/92095A473/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A186", "url" : "https://www.mcmaster.com/92095A186/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M3 x 30 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A187", "url" : "https://www.mcmaster.com/92095A187/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M3 x 35 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A201", "url" : "https://www.mcmaster.com/92095A201/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M3 x 40 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A203", "url" : "https://www.mcmaster.com/92095A203/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M3 x 45 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A474", "url" : "https://www.mcmaster.com/92095A474/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M3 x 50 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A475", "url" : "https://www.mcmaster.com/92095A475/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M3 x 55 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A120", "url" : "https://www.mcmaster.com/92095A120/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_4 : { "standard" : { "name" : "M3 x 4 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A721", "url" : "https://www.mcmaster.com/91306A721/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A655", "url" : "https://www.mcmaster.com/91306A655/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A656", "url" : "https://www.mcmaster.com/91306A656/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A657", "url" : "https://www.mcmaster.com/91306A657/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A722", "url" : "https://www.mcmaster.com/91306A722/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A658", "url" : "https://www.mcmaster.com/91306A658/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M3 x 14 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A723", "url" : "https://www.mcmaster.com/91306A723/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A724", "url" : "https://www.mcmaster.com/91306A724/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M3 x 30 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A725", "url" : "https://www.mcmaster.com/91306A725/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } } + }, + ScrewFinish.BLACK : { + ScrewLength.MM_4 : { "standard" : { "name" : "M3 x 4 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A109", "url" : "https://www.mcmaster.com/91239A109/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A110", "url" : "https://www.mcmaster.com/91239A110/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A117", "url" : "https://www.mcmaster.com/91239A117/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M3 x 14 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A118", "url" : "https://www.mcmaster.com/91239A118/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M3 x 15 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A811", "url" : "https://www.mcmaster.com/91239A811/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A120", "url" : "https://www.mcmaster.com/91239A120/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M3 x 18 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A121", "url" : "https://www.mcmaster.com/91239A121/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A126", "url" : "https://www.mcmaster.com/91239A126/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M3 x 30 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A127", "url" : "https://www.mcmaster.com/91239A127/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M3 x 35 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A128", "url" : "https://www.mcmaster.com/91239A128/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_4 : { "standard" : { "name" : "M3 x 4 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A127", "url" : "https://www.mcmaster.com/92125A127/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A125", "url" : "https://www.mcmaster.com/92125A125/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A126", "url" : "https://www.mcmaster.com/92125A126/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A128", "url" : "https://www.mcmaster.com/92125A128/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A130", "url" : "https://www.mcmaster.com/92125A130/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A132", "url" : "https://www.mcmaster.com/92125A132/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M3 x 14 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A133", "url" : "https://www.mcmaster.com/92125A133/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M3 x 15 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A103", "url" : "https://www.mcmaster.com/92125A103/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A134", "url" : "https://www.mcmaster.com/92125A134/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M3 x 18 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A135", "url" : "https://www.mcmaster.com/92125A135/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M3 x 20 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A136", "url" : "https://www.mcmaster.com/92125A136/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M3 x 22 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A371", "url" : "https://www.mcmaster.com/92125A371/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A138", "url" : "https://www.mcmaster.com/92125A138/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M3 x 30 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A140", "url" : "https://www.mcmaster.com/92125A140/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M3 x 35 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A141", "url" : "https://www.mcmaster.com/92125A141/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M3 x 40 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A150", "url" : "https://www.mcmaster.com/92125A150/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M3 x 45 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A372", "url" : "https://www.mcmaster.com/92125A372/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M3 x 50 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A151", "url" : "https://www.mcmaster.com/92125A151/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A821", "url" : "https://www.mcmaster.com/91263A821/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A822", "url" : "https://www.mcmaster.com/91263A822/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A823", "url" : "https://www.mcmaster.com/91263A823/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A824", "url" : "https://www.mcmaster.com/91263A824/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A825", "url" : "https://www.mcmaster.com/91263A825/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M3 x 14 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A863", "url" : "https://www.mcmaster.com/91263A863/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A864", "url" : "https://www.mcmaster.com/91263A864/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M3 x 18 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A865", "url" : "https://www.mcmaster.com/91263A865/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M3 x 20 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A866", "url" : "https://www.mcmaster.com/91263A866/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M3 x 22 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A867", "url" : "https://www.mcmaster.com/91263A867/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A868", "url" : "https://www.mcmaster.com/91263A868/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } } + }, + ScrewFinish.BLACK : { + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A125", "url" : "https://www.mcmaster.com/91294A125/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A126", "url" : "https://www.mcmaster.com/91294A126/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A128", "url" : "https://www.mcmaster.com/91294A128/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A130", "url" : "https://www.mcmaster.com/91294A130/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A132", "url" : "https://www.mcmaster.com/91294A132/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M3 x 14 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A133", "url" : "https://www.mcmaster.com/91294A133/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A134", "url" : "https://www.mcmaster.com/91294A134/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M3 x 18 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A135", "url" : "https://www.mcmaster.com/91294A135/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M3 x 20 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A136", "url" : "https://www.mcmaster.com/91294A136/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M3 x 22 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A137", "url" : "https://www.mcmaster.com/91294A137/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A138", "url" : "https://www.mcmaster.com/91294A138/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M3 x 30 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A141", "url" : "https://www.mcmaster.com/91294A141/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M3 x 35 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A536", "url" : "https://www.mcmaster.com/91294A536/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } } + } + } + }, + FastenerSize.M4 : { + ScrewHead.SOCKET : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_4 : { "standard" : { "name" : "M4 x 4 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A023", "url" : "https://www.mcmaster.com/91292A023/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A105", "url" : "https://www.mcmaster.com/91292A105/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A107", "url" : "https://www.mcmaster.com/91292A107/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A108", "url" : "https://www.mcmaster.com/91292A108/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A116", "url" : "https://www.mcmaster.com/91292A116/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A117", "url" : "https://www.mcmaster.com/91292A117/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M4 x 14 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A038", "url" : "https://www.mcmaster.com/91292A038/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M4 x 15 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "90751A177", "url" : "https://www.mcmaster.com/90751A177/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A118", "url" : "https://www.mcmaster.com/91292A118/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M4 x 18 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A043", "url" : "https://www.mcmaster.com/91292A043/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A121", "url" : "https://www.mcmaster.com/91292A121/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M4 x 22 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A806", "url" : "https://www.mcmaster.com/91292A806/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A122", "url" : "https://www.mcmaster.com/91292A122/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A130", "url" : "https://www.mcmaster.com/91292A130/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A131", "url" : "https://www.mcmaster.com/91292A131/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A132", "url" : "https://www.mcmaster.com/91292A132/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M4 x 45 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A133", "url" : "https://www.mcmaster.com/91292A133/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A140", "url" : "https://www.mcmaster.com/91292A140/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M4 x 55 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A268", "url" : "https://www.mcmaster.com/91292A268/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_60 : { "standard" : { "name" : "M4 x 60 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A048", "url" : "https://www.mcmaster.com/91292A048/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_65 : { "standard" : { "name" : "M4 x 65 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A317", "url" : "https://www.mcmaster.com/91292A317/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_70 : { "standard" : { "name" : "M4 x 70 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A269", "url" : "https://www.mcmaster.com/91292A269/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_75 : { "standard" : { "name" : "M4 x 75 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A318", "url" : "https://www.mcmaster.com/91292A318/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_80 : { "standard" : { "name" : "M4 x 80 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A271", "url" : "https://www.mcmaster.com/91292A271/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_85 : { "standard" : { "name" : "M4 x 85 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A838", "url" : "https://www.mcmaster.com/91292A838/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_90 : { "standard" : { "name" : "M4 x 90 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A319", "url" : "https://www.mcmaster.com/91292A319/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_100 : { "standard" : { "name" : "M4 x 100 mm Socket Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91292A039", "url" : "https://www.mcmaster.com/91292A039/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A207", "url" : "https://www.mcmaster.com/90128A207/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A208", "url" : "https://www.mcmaster.com/90128A208/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A211", "url" : "https://www.mcmaster.com/90128A211/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A212", "url" : "https://www.mcmaster.com/90128A212/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A214", "url" : "https://www.mcmaster.com/90128A214/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M4 x 15 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A332", "url" : "https://www.mcmaster.com/90128A332/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A215", "url" : "https://www.mcmaster.com/90128A215/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A216", "url" : "https://www.mcmaster.com/90128A216/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M4 x 22 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A333", "url" : "https://www.mcmaster.com/90128A333/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A217", "url" : "https://www.mcmaster.com/90128A217/", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Socket Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "90128A219", "url" : "https://www.mcmaster.com/90128A219/", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + }, + ScrewFinish.BLACK : { + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A138", "url" : "https://www.mcmaster.com/91290A138/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A139", "url" : "https://www.mcmaster.com/91290A139/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A140", "url" : "https://www.mcmaster.com/91290A140/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A144", "url" : "https://www.mcmaster.com/91290A144/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A148", "url" : "https://www.mcmaster.com/91290A148/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M4 x 14 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A150", "url" : "https://www.mcmaster.com/91290A150/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M4 x 15 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A306", "url" : "https://www.mcmaster.com/91290A306/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A154", "url" : "https://www.mcmaster.com/91290A154/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M4 x 18 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A164", "url" : "https://www.mcmaster.com/91290A164/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A168", "url" : "https://www.mcmaster.com/91290A168/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M4 x 22 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A631", "url" : "https://www.mcmaster.com/91290A631/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A637", "url" : "https://www.mcmaster.com/91290A637/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A639", "url" : "https://www.mcmaster.com/91290A639/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "M4 x 30 mm Socket Head Screw (Black, fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "91290A172", "url" : "https://www.mcmaster.com/91290A172/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A641", "url" : "https://www.mcmaster.com/91290A641/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "M4 x 35 mm Socket Head Screw (Black, fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "91290A173", "url" : "https://www.mcmaster.com/91290A173/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A184", "url" : "https://www.mcmaster.com/91290A184/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "M4 x 40 mm Socket Head Screw (Black, fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "91290A174", "url" : "https://www.mcmaster.com/91290A174/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M4 x 45 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A145", "url" : "https://www.mcmaster.com/91290A145/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "M4 x 45 mm Socket Head Screw (Black, fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "91290A175", "url" : "https://www.mcmaster.com/91290A175/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A186", "url" : "https://www.mcmaster.com/91290A186/", "material" : STEEL, "appearance" : BLACK }, "fullThread" : { "name" : "M4 x 50 mm Socket Head Screw (Black, fully threaded)", "vendor" : "McMaster-Carr", "partNumber" : "91290A193", "url" : "https://www.mcmaster.com/91290A193/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M4 x 55 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A645", "url" : "https://www.mcmaster.com/91290A645/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_60 : { "standard" : { "name" : "M4 x 60 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A647", "url" : "https://www.mcmaster.com/91290A647/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_65 : { "standard" : { "name" : "M4 x 65 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A083", "url" : "https://www.mcmaster.com/91290A083/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_70 : { "standard" : { "name" : "M4 x 70 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A651", "url" : "https://www.mcmaster.com/91290A651/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_75 : { "standard" : { "name" : "M4 x 75 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A085", "url" : "https://www.mcmaster.com/91290A085/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_80 : { "standard" : { "name" : "M4 x 80 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A653", "url" : "https://www.mcmaster.com/91290A653/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_85 : { "standard" : { "name" : "M4 x 85 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A574", "url" : "https://www.mcmaster.com/91290A574/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_90 : { "standard" : { "name" : "M4 x 90 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A183", "url" : "https://www.mcmaster.com/91290A183/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_100 : { "standard" : { "name" : "M4 x 100 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A185", "url" : "https://www.mcmaster.com/91290A185/", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.MM_110 : { "standard" : { "name" : "M4 x 110 mm Socket Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91290A575", "url" : "https://www.mcmaster.com/91290A575/", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_4 : { "standard" : { "name" : "M4 x 4 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A476", "url" : "https://www.mcmaster.com/92095A476/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A477", "url" : "https://www.mcmaster.com/92095A477/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A188", "url" : "https://www.mcmaster.com/92095A188/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A189", "url" : "https://www.mcmaster.com/92095A189/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A190", "url" : "https://www.mcmaster.com/92095A190/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A192", "url" : "https://www.mcmaster.com/92095A192/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M4 x 14 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A193", "url" : "https://www.mcmaster.com/92095A193/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M4 x 15 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A125", "url" : "https://www.mcmaster.com/92095A125/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A194", "url" : "https://www.mcmaster.com/92095A194/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M4 x 18 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A478", "url" : "https://www.mcmaster.com/92095A478/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A196", "url" : "https://www.mcmaster.com/92095A196/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M4 x 22 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A479", "url" : "https://www.mcmaster.com/92095A479/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A197", "url" : "https://www.mcmaster.com/92095A197/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A198", "url" : "https://www.mcmaster.com/92095A198/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A199", "url" : "https://www.mcmaster.com/92095A199/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A200", "url" : "https://www.mcmaster.com/92095A200/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M4 x 45 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A205", "url" : "https://www.mcmaster.com/92095A205/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A209", "url" : "https://www.mcmaster.com/92095A209/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M4 x 55 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A330", "url" : "https://www.mcmaster.com/92095A330/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_60 : { "standard" : { "name" : "M4 x 60 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A480", "url" : "https://www.mcmaster.com/92095A480/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_65 : { "standard" : { "name" : "M4 x 65 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A126", "url" : "https://www.mcmaster.com/92095A126/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_70 : { "standard" : { "name" : "M4 x 70 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A172", "url" : "https://www.mcmaster.com/92095A172/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_80 : { "standard" : { "name" : "M4 x 80 mm Button Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92095A173", "url" : "https://www.mcmaster.com/92095A173/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A726", "url" : "https://www.mcmaster.com/91306A726/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A659", "url" : "https://www.mcmaster.com/91306A659/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A660", "url" : "https://www.mcmaster.com/91306A660/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A727", "url" : "https://www.mcmaster.com/91306A727/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A661", "url" : "https://www.mcmaster.com/91306A661/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M4 x 14 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A728", "url" : "https://www.mcmaster.com/91306A728/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A662", "url" : "https://www.mcmaster.com/91306A662/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A663", "url" : "https://www.mcmaster.com/91306A663/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A729", "url" : "https://www.mcmaster.com/91306A729/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A731", "url" : "https://www.mcmaster.com/91306A731/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Button Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91306A732", "url" : "https://www.mcmaster.com/91306A732/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } } + }, + ScrewFinish.BLACK : { + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A136", "url" : "https://www.mcmaster.com/91239A136/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A140", "url" : "https://www.mcmaster.com/91239A140/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A144", "url" : "https://www.mcmaster.com/91239A144/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A148", "url" : "https://www.mcmaster.com/91239A148/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M4 x 14 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A149", "url" : "https://www.mcmaster.com/91239A149/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A150", "url" : "https://www.mcmaster.com/91239A150/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M4 x 18 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A151", "url" : "https://www.mcmaster.com/91239A151/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A152", "url" : "https://www.mcmaster.com/91239A152/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A154", "url" : "https://www.mcmaster.com/91239A154/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A156", "url" : "https://www.mcmaster.com/91239A156/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A158", "url" : "https://www.mcmaster.com/91239A158/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Button Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91239A160", "url" : "https://www.mcmaster.com/91239A160/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.STAINLESS : { + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A185", "url" : "https://www.mcmaster.com/92125A185/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A186", "url" : "https://www.mcmaster.com/92125A186/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A188", "url" : "https://www.mcmaster.com/92125A188/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A190", "url" : "https://www.mcmaster.com/92125A190/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A192", "url" : "https://www.mcmaster.com/92125A192/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M4 x 14 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A193", "url" : "https://www.mcmaster.com/92125A193/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_15 : { "standard" : { "name" : "M4 x 15 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A104", "url" : "https://www.mcmaster.com/92125A104/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A194", "url" : "https://www.mcmaster.com/92125A194/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M4 x 18 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A196", "url" : "https://www.mcmaster.com/92125A196/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A198", "url" : "https://www.mcmaster.com/92125A198/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M4 x 22 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A201", "url" : "https://www.mcmaster.com/92125A201/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A202", "url" : "https://www.mcmaster.com/92125A202/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A203", "url" : "https://www.mcmaster.com/92125A203/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A204", "url" : "https://www.mcmaster.com/92125A204/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A205", "url" : "https://www.mcmaster.com/92125A205/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M4 x 45 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A207", "url" : "https://www.mcmaster.com/92125A207/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A209", "url" : "https://www.mcmaster.com/92125A209/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M4 x 55 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A373", "url" : "https://www.mcmaster.com/92125A373/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_60 : { "standard" : { "name" : "M4 x 60 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A221", "url" : "https://www.mcmaster.com/92125A221/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_65 : { "standard" : { "name" : "M4 x 65 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A105", "url" : "https://www.mcmaster.com/92125A105/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_70 : { "standard" : { "name" : "M4 x 70 mm Flat Head Screw (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92125A106", "url" : "https://www.mcmaster.com/92125A106/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY, "fullyThreaded" : true } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A826", "url" : "https://www.mcmaster.com/91263A826/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A827", "url" : "https://www.mcmaster.com/91263A827/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A828", "url" : "https://www.mcmaster.com/91263A828/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A829", "url" : "https://www.mcmaster.com/91263A829/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A830", "url" : "https://www.mcmaster.com/91263A830/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M4 x 18 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A869", "url" : "https://www.mcmaster.com/91263A869/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A871", "url" : "https://www.mcmaster.com/91263A871/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A872", "url" : "https://www.mcmaster.com/91263A872/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A873", "url" : "https://www.mcmaster.com/91263A873/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A874", "url" : "https://www.mcmaster.com/91263A874/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A875", "url" : "https://www.mcmaster.com/91263A875/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M4 x 45 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A876", "url" : "https://www.mcmaster.com/91263A876/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Flat Head Screw (Zinc plated)", "vendor" : "McMaster-Carr", "partNumber" : "91263A877", "url" : "https://www.mcmaster.com/91263A877/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } } + }, + ScrewFinish.BLACK : { + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A186", "url" : "https://www.mcmaster.com/91294A186/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A188", "url" : "https://www.mcmaster.com/91294A188/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A190", "url" : "https://www.mcmaster.com/91294A190/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A192", "url" : "https://www.mcmaster.com/91294A192/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M4 x 14 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A193", "url" : "https://www.mcmaster.com/91294A193/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A194", "url" : "https://www.mcmaster.com/91294A194/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M4 x 18 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A195", "url" : "https://www.mcmaster.com/91294A195/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A196", "url" : "https://www.mcmaster.com/91294A196/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M4 x 22 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A197", "url" : "https://www.mcmaster.com/91294A197/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A198", "url" : "https://www.mcmaster.com/91294A198/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A200", "url" : "https://www.mcmaster.com/91294A200/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A202", "url" : "https://www.mcmaster.com/91294A202/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A204", "url" : "https://www.mcmaster.com/91294A204/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M4 x 45 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A484", "url" : "https://www.mcmaster.com/91294A484/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Flat Head Screw (Black)", "vendor" : "McMaster-Carr", "partNumber" : "91294A537", "url" : "https://www.mcmaster.com/91294A537/", "material" : STEEL, "appearance" : BLACK, "fullyThreaded" : true } } + } + } + } + }, + FastenerVendor.REV : { + FastenerSize.NO_10_32 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2910-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2910-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#10-32 x 5/16 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2911-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2911-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2912-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2912-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2914-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2914-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2916-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2916-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2918-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2918-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2922-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2922-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2924-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2924-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2926-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2926-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2928-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2928-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2930-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2930-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#10-32 x 2-1/4 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2931-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2931-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#10-32 x 2-1/2 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2932-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2932-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#10-32 x 2-3/4 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2933-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2933-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#10-32 x 3 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2934-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2934-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#10-32 x 3-1/2 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2936-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2936-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "#10-32 x 4 in Socket Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2938-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2938-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2939-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2939-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_3125 : { "standard" : { "name" : "#10-32 x 5/16 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2940-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2940-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2941-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2941-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2943-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2943-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2945-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2945-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2947-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2947-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2951-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2951-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2953-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2953-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2955-PK50", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2955-PK50§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_625 : { "standard" : { "name" : "#10-32 x 1-5/8 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2956-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2956-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2957-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2957-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2959-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2959-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#10-32 x 2-1/4 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2960-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2960-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#10-32 x 2-1/2 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2961-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2961-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#10-32 x 2-3/4 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2962-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2962-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#10-32 x 3 in Button Head Screw", "vendor" : "REV", "partNumber" : "REV-29-2963-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-2963-PK25§ion=product", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Button Head Screw (Zinc plated)", "vendor" : "REV", "partNumber" : "REV-29-1221-PK100", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-1221-PK100§ion=product", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Button Head Screw (Zinc plated)", "vendor" : "REV", "partNumber" : "REV-29-1222-PK100", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-1222-PK100§ion=product", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Flat Head Screw (Zinc plated)", "vendor" : "REV", "partNumber" : "REV-29-1223-PK25", "url" : "https://www.revrobotics.com/search.php?search_query=REV-29-1223-PK25§ion=product", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + } + }, + FastenerSize.M3 : { + ScrewHead.HEX : { + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Hex Head Screw (Zinc plated)", "vendor" : "REV", "partNumber" : "REV-41-1713", "url" : "https://www.revrobotics.com/M3-Hex-Cap-Screws/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Hex Head Screw (Zinc plated)", "vendor" : "REV", "partNumber" : "REV-41-1359", "url" : "https://www.revrobotics.com/M3-Hex-Cap-Screws/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Hex Head Screw (Zinc plated)", "vendor" : "REV", "partNumber" : "REV-41-1123", "url" : "https://www.revrobotics.com/M3-Hex-Cap-Screws/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M3 x 16 mm Hex Head Screw (Zinc plated)", "vendor" : "REV", "partNumber" : "REV-41-1360", "url" : "https://www.revrobotics.com/M3-Hex-Cap-Screws/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M3 x 20 mm Hex Head Screw (Zinc plated)", "vendor" : "REV", "partNumber" : "REV-41-1124", "url" : "https://www.revrobotics.com/M3-Hex-Cap-Screws/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M3 x 25 mm Hex Head Screw (Zinc plated)", "vendor" : "REV", "partNumber" : "REV-41-1715", "url" : "https://www.revrobotics.com/M3-Hex-Cap-Screws/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M3 x 35 mm Hex Head Screw (Zinc plated)", "vendor" : "REV", "partNumber" : "REV-41-1125", "url" : "https://www.revrobotics.com/M3-Hex-Cap-Screws/", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } } + } + } + } + }, + FastenerVendor.WCP : { + FastenerSize.NO_8_32 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_1 : { "standard" : { "name" : "#8-32 x 1 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-2249", "url" : "https://wcproducts.com/products/wcp-2249", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "#8-32 x 1/4 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-1548", "url" : "https://wcproducts.com/products/wcp-1548", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#8-32 x 1/2 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0250", "url" : "https://wcproducts.com/products/wcp-0250", "material" : STEEL, "appearance" : BLACK } } + } + } + }, + FastenerSize.NO_10_32 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0264", "url" : "https://wcproducts.com/products/wcp-0264", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0265", "url" : "https://wcproducts.com/products/wcp-0265", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0266", "url" : "https://wcproducts.com/products/wcp-0266", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0267", "url" : "https://wcproducts.com/products/wcp-0267", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0268", "url" : "https://wcproducts.com/products/wcp-0268", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-1549", "url" : "https://wcproducts.com/products/wcp-1549", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0269", "url" : "https://wcproducts.com/products/wcp-0269", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#10-32 x 2-1/2 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0270", "url" : "https://wcproducts.com/products/wcp-0270", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#10-32 x 3 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0271", "url" : "https://wcproducts.com/products/wcp-0271", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#10-32 x 3-1/2 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0272", "url" : "https://wcproducts.com/products/wcp-0272", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4 : { "standard" : { "name" : "#10-32 x 4 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0273", "url" : "https://wcproducts.com/products/wcp-0273", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4_5 : { "standard" : { "name" : "#10-32 x 4-1/2 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0274", "url" : "https://wcproducts.com/products/wcp-0274", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_5 : { "standard" : { "name" : "#10-32 x 5 in Socket Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0275", "url" : "https://wcproducts.com/products/wcp-0275", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0251", "url" : "https://wcproducts.com/products/wcp-0251", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0252", "url" : "https://wcproducts.com/products/wcp-0252", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0253", "url" : "https://wcproducts.com/products/wcp-0253", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0135", "url" : "https://wcproducts.com/products/wcp-0135", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#10-32 x 7/8 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-1463", "url" : "https://wcproducts.com/products/wcp-1463", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0255", "url" : "https://wcproducts.com/products/wcp-0255", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0256", "url" : "https://wcproducts.com/products/wcp-0256", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0257", "url" : "https://wcproducts.com/products/wcp-0257", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0258", "url" : "https://wcproducts.com/products/wcp-0258", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0259", "url" : "https://wcproducts.com/products/wcp-0259", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#10-32 x 2-1/4 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0260", "url" : "https://wcproducts.com/products/wcp-0260", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#10-32 x 2-1/2 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0261", "url" : "https://wcproducts.com/products/wcp-0261", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#10-32 x 2-3/4 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0262", "url" : "https://wcproducts.com/products/wcp-0262", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#10-32 x 3 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-0263", "url" : "https://wcproducts.com/products/wcp-0263", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_4_75 : { "standard" : { "name" : "#10-32 x 4-3/4 in Button Head Screw", "vendor" : "WCP", "partNumber" : "WCP-1656", "url" : "https://wcproducts.com/products/wcp-1656", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ALUMINUM : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Button Head Screw (Aluminum)", "vendor" : "WCP", "partNumber" : "WCP-2110", "url" : "https://wcproducts.com/products/wcp-2110", "material" : ALUMINUM, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Button Head Screw (Aluminum)", "vendor" : "WCP", "partNumber" : "WCP-2111", "url" : "https://wcproducts.com/products/wcp-2111", "material" : ALUMINUM, "appearance" : MEDIUM_GRAY } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Button Head Screw (Aluminum)", "vendor" : "WCP", "partNumber" : "WCP-2112", "url" : "https://wcproducts.com/products/wcp-2112", "material" : ALUMINUM, "appearance" : MEDIUM_GRAY } } + } + } + } + }, + FastenerVendor.ANDYMARK : { + FastenerSize.NO_4_40 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_375 : { "standard" : { "name" : "#4-40 x 3/8 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1032", "url" : "https://andymark.com/products/4-40-x-0-375-in-socket-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#4-40 x 1/2 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1136", "url" : "https://andymark.com/products/4-40-x-0-5-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "#4-40 x 1/4 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1679", "url" : "https://andymark.com/products/4-40-x-0-25-in-button-head-cap-screw-with-nylon-patch", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_375 : { "standard" : { "name" : "#4-40 x 3/8 in Flat Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1586", "url" : "https://andymark.com/products/4-40-x-0-375-in-flat-head-cap-screw-with-nylon-patch", "material" : STEEL, "appearance" : BLACK } } + } + } + }, + FastenerSize.NO_6_32 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_2_125 : { "standard" : { "name" : "#6-32 x 2-1/8 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1657", "url" : "https://andymark.com/products/6-32-x-2-125-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_625 : { "standard" : { "name" : "#6-32 x 5/8 in Flat Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1570", "url" : "https://andymark.com/products/6-32-x-0-625-in-flat-head-socket-cap-screw", "material" : STEEL, "appearance" : BLACK } } + } + } + }, + FastenerSize.NO_8_32 : { + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_5 : { "standard" : { "name" : "#8-32 x 1/2 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1691", "url" : "https://andymark.com/products/8-32-x-0-5-in-button-head-cap-screw-with-nylon-patch", "material" : STEEL, "appearance" : BLACK } } + } + } + }, + FastenerSize.NO_10_32 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_25 : { "standard" : { "name" : "#10-32 x 1/4 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1771", "url" : "https://andymark.com/products/10-32-x-250-in-socket-head-cap-screw-with-nylon-thread-lock-patch", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1359", "url" : "https://andymark.com/products/10-32-x-0-375-in-socket-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1002", "url" : "https://andymark.com/products/10-32-x-0-5-in-socket-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1007", "url" : "https://andymark.com/products/10-32-x-0-625-in-socket-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1047", "url" : "https://andymark.com/products/10-32-x-0-75-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_875 : { "standard" : { "name" : "#10-32 x 7/8 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1753", "url" : "https://andymark.com/products/10-32-x-0-875-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1056", "url" : "https://andymark.com/products/10-32-x-1-in-socket-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_125 : { "standard" : { "name" : "#10-32 x 1-1/8 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1013", "url" : "https://andymark.com/products/10-32-x-1-125-in-socket-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1041", "url" : "https://andymark.com/products/10-32-x-1-25-in-socket-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_375 : { "standard" : { "name" : "#10-32 x 1-3/8 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1154", "url" : "https://andymark.com/products/10-32-x-1-375-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1014", "url" : "https://andymark.com/products/10-32-x-1-5-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1048", "url" : "https://andymark.com/products/10-32-x-1-75-in-socket-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1049", "url" : "https://andymark.com/products/10-32-x-2-in-socket-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_25 : { "standard" : { "name" : "#10-32 x 2-1/4 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1156", "url" : "https://andymark.com/products/10-32-x-2-25-in-socket-head-cap-screw-2", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "#10-32 x 2-1/2 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1024", "url" : "https://andymark.com/products/10-32-x-2-5-in-socket-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_75 : { "standard" : { "name" : "#10-32 x 2-3/4 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1397", "url" : "https://andymark.com/products/10-32-x-2-75-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "#10-32 x 3 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1522", "url" : "https://andymark.com/products/10-32-x-3-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_25 : { "standard" : { "name" : "#10-32 x 3-1/4 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1258", "url" : "https://andymark.com/products/10-32-x-3-25-in-socket-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_5 : { "standard" : { "name" : "#10-32 x 3-1/2 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1402", "url" : "https://andymark.com/products/10-32-x-3-5-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_375 : { "standard" : { "name" : "#10-32 x 3/8 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1588", "url" : "https://andymark.com/products/10-32-x-3-8-in-button-head-cap-screw-with-nylon-patch", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1512", "url" : "https://andymark.com/products/10-32-x-0-5-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1549", "url" : "https://andymark.com/products/10-32-x-0-625-in-button-head-cap-screw-with-nylon-patch", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1524", "url" : "https://andymark.com/products/10-32-x-0-75-in-hex-drive-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1396", "url" : "https://andymark.com/products/10-32-x-1-in-button-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "#10-32 x 1-1/4 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1260", "url" : "https://andymark.com/products/10-32-x-1-25-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1730", "url" : "https://andymark.com/products/10-32-x-1-5-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "#10-32 x 1-3/4 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1584", "url" : "https://andymark.com/products/10-32-x-1-75-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_5 : { "standard" : { "name" : "#10-32 x 1/2 in Flat Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1404", "url" : "https://andymark.com/products/10-32-x-0-5-in-flat-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "#10-32 x 5/8 in Flat Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1252", "url" : "https://andymark.com/products/10-32-x-0-625-in-flat-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_75 : { "standard" : { "name" : "#10-32 x 3/4 in Flat Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1170", "url" : "https://andymark.com/products/10-32-x-0-75-in-flat-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "#10-32 x 1 in Flat Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1324", "url" : "https://andymark.com/products/10-32-x-1-in-flat-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "#10-32 x 1-1/2 in Flat Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1756", "url" : "https://andymark.com/products/10-32-x-1-500-in-flat-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "#10-32 x 2 in Flat Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1383", "url" : "https://andymark.com/products/10-32-x-2-in-flat-head-cap-screw-black-oxide", "material" : STEEL, "appearance" : BLACK } } + } + } + }, + FastenerSize.QUARTER_20 : { + ScrewHead.SOCKET : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_625 : { "standard" : { "name" : "1/4-20 x 5/8 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1053", "url" : "https://andymark.com/products/1-4-20-x-0-625-in-hex-drive-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "1/4-20 x 1 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1341", "url" : "https://andymark.com/products/1-4-20-x-1-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "1/4-20 x 1-1/2 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1131", "url" : "https://andymark.com/products/1-4-20-x-1-5-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "1/4-20 x 1-3/4 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1058", "url" : "https://andymark.com/products/1-4-20-x-1-75-in-hex-drive-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "1/4-20 x 2 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1012", "url" : "https://andymark.com/products/1-4-20-x-2-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "1/4-20 x 2-1/2 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1031", "url" : "https://andymark.com/products/1-4-20-x-2-5-in-hex-drive-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3 : { "standard" : { "name" : "1/4-20 x 3 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1030", "url" : "https://andymark.com/products/1-4-20-x-3-in-socket-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_3_25 : { "standard" : { "name" : "1/4-20 x 3-1/4 in Socket Head Screw", "vendor" : "AndyMark", "partNumber" : "am-3338", "url" : "https://andymark.com/products/1-4-20-x-3-25-in-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_375 : { "standard" : { "name" : "1/4-20 x 3/8 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1520", "url" : "https://andymark.com/products/1-4-20-x-0-375-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_5 : { "standard" : { "name" : "1/4-20 x 1/2 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1039", "url" : "https://andymark.com/products/1-4-20-x-0-5-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_0_625 : { "standard" : { "name" : "1/4-20 x 5/8 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1681", "url" : "https://andymark.com/products/1-4-20-x-0-625-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1 : { "standard" : { "name" : "1/4-20 x 1 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1525", "url" : "https://andymark.com/products/1-4-20-x-1-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_25 : { "standard" : { "name" : "1/4-20 x 1-1/4 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1183", "url" : "https://andymark.com/products/1-4-20-x-1-25-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_5 : { "standard" : { "name" : "1/4-20 x 1-1/2 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1118", "url" : "https://andymark.com/products/1-4-20-x-1-5-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_1_75 : { "standard" : { "name" : "1/4-20 x 1-3/4 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1420", "url" : "https://andymark.com/products/1-4-20-x-1-75-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "1/4-20 x 2 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1655", "url" : "https://andymark.com/products/1-4-20-x-2-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2_5 : { "standard" : { "name" : "1/4-20 x 2-1/2 in Button Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1695", "url" : "https://andymark.com/products/1-4-20-x-2-5-in-button-head-cap-screw", "material" : STEEL, "appearance" : BLACK } } + }, + ScrewFinish.ZINC_PLATED : { + ScrewLength.IN_0_75 : { "standard" : { "name" : "1/4-20 x 3/4 in Button Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1754", "url" : "https://andymark.com/products/screw-bhcs-1-4-20-x-750-zinc", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.BLACK : { + ScrewLength.IN_0_75 : { "standard" : { "name" : "1/4-20 x 3/4 in Flat Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1672", "url" : "https://andymark.com/products/1-4-20-x-0-75-in-flat-head-cap-screw", "material" : STEEL, "appearance" : BLACK } }, + ScrewLength.IN_2 : { "standard" : { "name" : "1/4-20 x 2 in Flat Head Screw", "vendor" : "AndyMark", "partNumber" : "am-1707", "url" : "https://andymark.com/products/1-4-20-x-2-in-flat-head-cap-screw", "material" : STEEL, "appearance" : BLACK } } + } + } + }, + FastenerSize.M3 : { + ScrewHead.SOCKET : { + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1675", "url" : "https://andymark.com/products/m3-0-5-x-5-mm-socket-head-cap-screw-with-nylon-patch", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1254", "url" : "https://andymark.com/products/m3-0-5-x-6-mm-socket-head-cap-screw", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1500", "url" : "https://andymark.com/products/m3-0-5-x-8-mm-socket-head-cap-screw-with-thread-patch", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1021", "url" : "https://andymark.com/products/m3-0-5-x-10-mm-socket-head-cap-screw", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1706", "url" : "https://andymark.com/products/m3-0-5-x-12-mm-socket-head-cap-screw-with-nylon-patch", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M3 x 14 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1367", "url" : "https://andymark.com/products/m3-0-5-x-14-mm-socket-head-cap-screw", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M3 x 30 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1578", "url" : "https://andymark.com/products/m3-0-5-x-30-mm-socket-head-cap-screw", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M3 x 35 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1671", "url" : "https://andymark.com/products/m3-0-5-x-35-mm-socket-head-cap-screw", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + }, + ScrewFinish.STAINLESS : { + ScrewLength.MM_45 : { "standard" : { "name" : "M3 x 45 mm Socket Head Screw (Stainless steel)", "vendor" : "AndyMark", "partNumber" : "am-1659", "url" : "https://andymark.com/products/m3-0-5-x-45-mm-socket-head-cap-screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M3 x 55 mm Socket Head Screw (Stainless steel)", "vendor" : "AndyMark", "partNumber" : "am-1379", "url" : "https://andymark.com/products/m3-0-5-x-55-mm-socket-head-cap-screw", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } } + } + }, + ScrewHead.FLAT : { + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_5 : { "standard" : { "name" : "M3 x 5 mm Flat Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1724", "url" : "https://andymark.com/products/m3-0-5-x-5-mm-zinc-flat-head-cap-screw-with-nylon-patch", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Flat Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1723", "url" : "https://andymark.com/products/m3-0-5-x-8mm-flat-head-cap-screw", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Flat Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1765", "url" : "https://andymark.com/products/hardware-screw-fhsc-m3-0-5-x-12mm-steel-zinc-plated", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + } + }, + FastenerSize.M4 : { + ScrewHead.SOCKET : { + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1343", "url" : "https://andymark.com/products/m4-0-7-x-5-mm-socket-head-cap-screw", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1264", "url" : "https://andymark.com/products/m4-0-7-x-10-mm-socket-head-cap-screw-1", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1532", "url" : "https://andymark.com/products/m4-0-7-x-25-mm-socket-head-cap-screw", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1533", "url" : "https://andymark.com/products/m4-0-7-x-30-mm-socket-head-cap-screw", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1422", "url" : "https://andymark.com/products/m4-0-7-x-40-mm-socket-head-cap-screw", "material" : STEEL, "appearance" : MEDIUM_GRAY } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Socket Head Screw (Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1401", "url" : "https://andymark.com/products/m4-0-7-x-50-mm-socket-head-cap-screw", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + }, + ScrewFinish.BLACK : { + ScrewLength.MM_55 : { "standard" : { "name" : "M4 x 55 mm Socket Head Screw (Black)", "vendor" : "AndyMark", "partNumber" : "am-1251", "url" : "https://andymark.com/products/m4-0-7-x-55-mm-socket-head-cap-screw", "material" : STEEL, "appearance" : BLACK } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.BLACK : { + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Button Head Screw (Black)", "vendor" : "AndyMark", "partNumber" : "am-1441", "url" : "https://andymark.com/products/m4-0-7-x-35-mm-black-oxide-button-head-cap-screw-1", "material" : STEEL, "appearance" : BLACK } } + } + } + } + }, + FastenerVendor.GOBILDA : { + FastenerSize.M3 : { + ScrewHead.SOCKET : { + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_6 : { "standard" : { "name" : "M3 x 6 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0003-0006", "url" : "https://www.gobilda.com/m3-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M3 x 8 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0003-0008", "url" : "https://www.gobilda.com/m3-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M3 x 10 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0003-0010", "url" : "https://www.gobilda.com/m3-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M3 x 12 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0003-0012", "url" : "https://www.gobilda.com/m3-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } } + } + } + }, + FastenerSize.M4 : { + ScrewHead.SOCKET : { + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0005", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0006", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_7 : { "standard" : { "name" : "M4 x 7 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0007", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0008", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_9 : { "standard" : { "name" : "M4 x 9 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0009", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0010", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_11 : { "standard" : { "name" : "M4 x 11 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0011", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0012", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M4 x 14 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0014", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0016", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M4 x 18 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0018", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0020", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M4 x 22 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0022", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0025", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0030", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0035", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0040", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M4 x 45 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0045", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0050", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M4 x 55 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0055", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_60 : { "standard" : { "name" : "M4 x 60 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0060", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_75 : { "standard" : { "name" : "M4 x 75 mm Socket Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2800-0004-0075", "url" : "https://www.gobilda.com/m4-socket-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY } } + } + }, + ScrewHead.BUTTON : { + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_5 : { "standard" : { "name" : "M4 x 5 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0005", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_6 : { "standard" : { "name" : "M4 x 6 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0006", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0008", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0010", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0012", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_14 : { "standard" : { "name" : "M4 x 14 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0014", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0016", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_18 : { "standard" : { "name" : "M4 x 18 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0018", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_20 : { "standard" : { "name" : "M4 x 20 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0020", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_22 : { "standard" : { "name" : "M4 x 22 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0022", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_25 : { "standard" : { "name" : "M4 x 25 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0025", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_30 : { "standard" : { "name" : "M4 x 30 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0030", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_35 : { "standard" : { "name" : "M4 x 35 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0035", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_40 : { "standard" : { "name" : "M4 x 40 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0040", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_45 : { "standard" : { "name" : "M4 x 45 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0045", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_50 : { "standard" : { "name" : "M4 x 50 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0050", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_55 : { "standard" : { "name" : "M4 x 55 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0055", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_60 : { "standard" : { "name" : "M4 x 60 mm Button Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2802-0004-0060", "url" : "https://www.gobilda.com/m4-button-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } } + } + }, + ScrewHead.HEX : { + ScrewFinish.ZINC_PLATED : { + ScrewLength.MM_8 : { "standard" : { "name" : "M4 x 8 mm Hex Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2813-0004-0008", "url" : "https://www.gobilda.com/m4-hex-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_10 : { "standard" : { "name" : "M4 x 10 mm Hex Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2813-0004-0010", "url" : "https://www.gobilda.com/m4-hex-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_12 : { "standard" : { "name" : "M4 x 12 mm Hex Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2813-0004-0012", "url" : "https://www.gobilda.com/m4-hex-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } }, + ScrewLength.MM_16 : { "standard" : { "name" : "M4 x 16 mm Hex Head Screw (Zinc plated)", "vendor" : "goBILDA", "partNumber" : "2813-0004-0016", "url" : "https://www.gobilda.com/m4-hex-head-screws", "material" : STEEL, "appearance" : MEDIUM_GRAY, "fullyThreaded" : true } } + } + } + } + } + }; + +export const NUTS = { + FastenerVendor.MCMASTER : { + FastenerSize.NO_4_40 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.25 * inch, "height" : 0.141 * inch, "hexHeight" : 0.1175 * inch, "insertDiameter" : 0.1525 * inch, "name" : "#4-40 Nylock Nut", "vendor" : "McMaster-Carr", "partNumber" : "90631A005", "url" : "https://www.mcmaster.com/90631A005/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.THIN_NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.25 * inch, "height" : 0.109 * inch, "hexHeight" : 0.090833 * inch, "insertDiameter" : 0.1525 * inch, "name" : "#4-40 Thin Nylock Nut", "vendor" : "McMaster-Carr", "partNumber" : "90633A005", "url" : "https://www.mcmaster.com/90633A005/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.25 * inch, "height" : 0.094 * inch, "name" : "#4-40 Hex Nut", "vendor" : "McMaster-Carr", "partNumber" : "90480A005", "url" : "https://www.mcmaster.com/90480A005/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.THIN_HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.25 * inch, "height" : 0.063 * inch, "name" : "#4-40 Thin Hex Nut", "vendor" : "McMaster-Carr", "partNumber" : "90760A005", "url" : "https://www.mcmaster.com/90760A005/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + } + }, + FastenerSize.NO_6_32 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.3125 * inch, "height" : 0.171875 * inch, "hexHeight" : 0.143229 * inch, "insertDiameter" : 0.183127 * inch, "name" : "#6-32 Nylock Nut", "vendor" : "McMaster-Carr", "partNumber" : "90631A007", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.THIN_NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.3125 * inch, "height" : 0.125 * inch, "hexHeight" : 0.104167 * inch, "insertDiameter" : 0.190939 * inch, "name" : "#6-32 Thin Nylock Nut", "vendor" : "McMaster-Carr", "partNumber" : "90633A007", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.3125 * inch, "height" : 0.109375 * inch, "name" : "#6-32 Hex Nut", "vendor" : "McMaster-Carr", "partNumber" : "90480A007", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.THIN_HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.25 * inch, "height" : 0.09375 * inch, "name" : "#6-32 Thin Hex Nut", "vendor" : "McMaster-Carr", "partNumber" : "90760A007", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + } + }, + FastenerSize.NO_8_32 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.34375 * inch, "height" : 0.203 * inch, "hexHeight" : 0.169167 * inch, "insertDiameter" : 0.209687 * inch, "name" : "#8-32 Nylock Nut", "vendor" : "McMaster-Carr", "partNumber" : "90631A009", "url" : "https://www.mcmaster.com/90631A009/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.THIN_NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.34375 * inch, "height" : 0.141 * inch, "hexHeight" : 0.1175 * inch, "insertDiameter" : 0.209687 * inch, "name" : "#8-32 Thin Nylock Nut", "vendor" : "McMaster-Carr", "partNumber" : "90633A009", "url" : "https://www.mcmaster.com/90633A009/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.34375 * inch, "height" : 0.125 * inch, "name" : "#8-32 Hex Nut", "vendor" : "McMaster-Carr", "partNumber" : "90480A009", "url" : "https://www.mcmaster.com/90480A009/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.SQUARE : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.34375 * inch, "height" : 0.125 * inch, "name" : "#8-32 Square Nut", "vendor" : "McMaster-Carr", "partNumber" : "94855A216", "url" : "https://www.mcmaster.com/94855A216/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + } + }, + FastenerSize.NO_10_32 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.375 * inch, "height" : 0.234375 * inch, "hexHeight" : 0.195312 * inch, "insertDiameter" : 0.228966 * inch, "name" : "#10-32 Nylock Nut", "vendor" : "McMaster-Carr", "partNumber" : "90631A411", "url" : "https://www.mcmaster.com/90631A411/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.THIN_NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.375 * inch, "height" : 0.171875 * inch, "hexHeight" : 0.132812 * inch, "insertDiameter" : 0.228966 * inch, "name" : "#10-32 Thin Nylock Nut", "vendor" : "McMaster-Carr", "partNumber" : "90633A411", "url" : "https://www.mcmaster.com/90633A411/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.375 * inch, "height" : 0.125 * inch, "name" : "#10-32 Hex Nut", "vendor" : "McMaster-Carr", "partNumber" : "90480A195", "url" : "https://www.mcmaster.com/90480A195/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.SQUARE : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.375 * inch, "height" : 0.125 * inch, "name" : "#10-32 Square Nut", "vendor" : "McMaster-Carr", "partNumber" : "94855A283", "url" : "https://www.mcmaster.com/94855A283/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + } + }, + FastenerSize.QUARTER_20 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.4375 * inch, "height" : 0.312 * inch, "hexHeight" : 0.26 * inch, "insertDiameter" : 0.266875 * inch, "name" : "1/4-20 Nylock Nut", "vendor" : "McMaster-Carr", "partNumber" : "90640A129", "url" : "https://www.mcmaster.com/90640A129/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.THIN_NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.4375 * inch, "height" : 0.203 * inch, "hexHeight" : 0.169167 * inch, "insertDiameter" : 0.266875 * inch, "name" : "1/4-20 Thin Nylock Nut", "vendor" : "McMaster-Carr", "partNumber" : "90566A029", "url" : "https://www.mcmaster.com/90566A029/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.4375 * inch, "height" : 0.219 * inch, "name" : "1/4-20 Hex Nut", "vendor" : "McMaster-Carr", "partNumber" : "90494A029", "url" : "https://www.mcmaster.com/90494A029/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.SQUARE : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 0.4375 * inch, "height" : 0.21875 * inch, "name" : "1/4-20 Square Nut", "vendor" : "McMaster-Carr", "partNumber" : "90043A029", "url" : "https://www.mcmaster.com/90043A029/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + } + }, + FastenerSize.M3 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 5.5 * millimeter, "height" : 4 * millimeter, "hexHeight" : 3.33 * millimeter, "insertDiameter" : 3.35 * millimeter, "name" : "M3 Nylock Nut", "vendor" : "McMaster-Carr", "partNumber" : "90576A102", "url" : "https://www.mcmaster.com/90576A102/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL }, + NutFinish.STAINLESS : { "acrossFlats" : 5.5 * millimeter, "height" : 4 * millimeter, "hexHeight" : 3.33 * millimeter, "insertDiameter" : 3.35 * millimeter, "name" : "M3 Nylock Nut (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "93625A100", "url" : "https://www.mcmaster.com/93625A100/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY }, + NutFinish.BLACK : { "acrossFlats" : 5.5 * millimeter, "height" : 4 * millimeter, "hexHeight" : 3.33 * millimeter, "insertDiameter" : 3.35 * millimeter, "name" : "M3 Nylock Nut (Black)", "vendor" : "McMaster-Carr", "partNumber" : "93625A223", "url" : "https://www.mcmaster.com/93625A223/", "material" : STEEL, "appearance" : BLACK } + }, + NutType.HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 5.5 * millimeter, "height" : 2.4 * millimeter, "name" : "M3 Hex Nut", "vendor" : "McMaster-Carr", "partNumber" : "90591A250", "url" : "https://www.mcmaster.com/90591A250/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL }, + NutFinish.STAINLESS : { "acrossFlats" : 5.5 * millimeter, "height" : 2.4 * millimeter, "name" : "M3 Hex Nut (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91828A211", "url" : "https://www.mcmaster.com/91828A211/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY }, + NutFinish.BLACK : { "acrossFlats" : 5.5 * millimeter, "height" : 2.4 * millimeter, "name" : "M3 Hex Nut (Black)", "vendor" : "McMaster-Carr", "partNumber" : "98676A100", "url" : "https://www.mcmaster.com/98676A100/", "material" : STEEL, "appearance" : BLACK } + } + }, + FastenerSize.M4 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 7 * millimeter, "height" : 5 * millimeter, "hexHeight" : 4.17 * millimeter, "insertDiameter" : 5.05 * millimeter, "name" : "M4 Nylock Nut", "vendor" : "McMaster-Carr", "partNumber" : "90576A103", "url" : "https://www.mcmaster.com/90576A103/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL }, + NutFinish.STAINLESS : { "acrossFlats" : 7 * millimeter, "height" : 5 * millimeter, "hexHeight" : 4.17 * millimeter, "insertDiameter" : 5.05 * millimeter, "name" : "M4 Nylock Nut (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "93625A150", "url" : "https://www.mcmaster.com/93625A150/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY }, + NutFinish.BLACK : { "acrossFlats" : 7 * millimeter, "height" : 5 * millimeter, "hexHeight" : 4.17 * millimeter, "insertDiameter" : 5.05 * millimeter, "name" : "M4 Nylock Nut (Black)", "vendor" : "McMaster-Carr", "partNumber" : "93625A224", "url" : "https://www.mcmaster.com/93625A224/", "material" : STEEL, "appearance" : BLACK } + }, + NutType.HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 7 * millimeter, "height" : 3.2 * millimeter, "name" : "M4 Hex Nut", "vendor" : "McMaster-Carr", "partNumber" : "90591A255", "url" : "https://www.mcmaster.com/90591A255/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL }, + NutFinish.STAINLESS : { "acrossFlats" : 7 * millimeter, "height" : 3.2 * millimeter, "name" : "M4 Hex Nut (Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "91828A231", "url" : "https://www.mcmaster.com/91828A231/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY }, + NutFinish.BLACK : { "acrossFlats" : 7 * millimeter, "height" : 3.2 * millimeter, "name" : "M4 Hex Nut (Black)", "vendor" : "McMaster-Carr", "partNumber" : "98676A200", "url" : "https://www.mcmaster.com/98676A200/", "material" : STEEL, "appearance" : BLACK } + } + } + }, + FastenerVendor.GENERIC : { + FastenerSize.M3 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 5.5 * millimeter, "height" : 4 * millimeter, "hexHeight" : 3.33 * millimeter, "insertDiameter" : 3.35 * millimeter, "name" : "M3 Nylock Nut", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 5.5 * millimeter, "height" : 2.4 * millimeter, "name" : "M3 Hex Nut", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + } + }, + FastenerSize.M4 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 7 * millimeter, "height" : 5 * millimeter, "hexHeight" : 4.17 * millimeter, "insertDiameter" : 5.05 * millimeter, "name" : "M4 Nylock Nut", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 7 * millimeter, "height" : 3.2 * millimeter, "name" : "M4 Hex Nut", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + } + } + }, + FastenerVendor.GOBILDA : { + FastenerSize.M4 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 7 * millimeter, "height" : 4.85 * millimeter, "hexHeight" : 4.04 * millimeter, "insertDiameter" : 4.37 * millimeter, "name" : "M4 Nylock Nut", "vendor" : "goBILDA", "partNumber" : "2812-0004-0007", "url" : "https://www.gobilda.com/nuts/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 7 * millimeter, "height" : 2.75 * millimeter, "name" : "M4 Hex Nut", "vendor" : "goBILDA", "partNumber" : "2811-0004-0007", "url" : "https://www.gobilda.com/nuts/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.SQUARE : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 7 * millimeter, "height" : 3 * millimeter, "name" : "M4 Square Nut", "vendor" : "goBILDA", "partNumber" : "2803-0007-0007", "url" : "https://www.gobilda.com/nuts/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + } + } + }, + FastenerVendor.REV : { + FastenerSize.M3 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 5.5 * millimeter, "height" : 4 * millimeter, "hexHeight" : 3.33 * millimeter, "insertDiameter" : 3.35 * millimeter, "name" : "M3 Nylock Nut", "vendor" : "REV", "partNumber" : "REV-41-1361", "url" : "https://www.revrobotics.com/M3-Nuts/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 5.5 * millimeter, "height" : 2.4 * millimeter, "name" : "M3 Hex Nut", "vendor" : "REV", "partNumber" : "REV-41-1126", "url" : "https://www.revrobotics.com/M3-Nuts/", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + } + } + }, + FastenerVendor.ANDYMARK : { + FastenerSize.M3 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 5.5 * millimeter, "height" : 4 * millimeter, "hexHeight" : 3.33 * millimeter, "insertDiameter" : 3.35 * millimeter, "name" : "M3 Nylock Nut", "vendor" : "AndyMark", "partNumber" : "am-1023", "url" : "https://andymark.com/products/m3-0-5-nylock-nut", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 5.5 * millimeter, "height" : 2.4 * millimeter, "name" : "M3 Hex Nut", "vendor" : "AndyMark", "partNumber" : "am-1386", "url" : "https://andymark.com/products/m3-nut", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + }, + NutType.THIN_HEX : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 5.5 * millimeter, "height" : 1.8 * millimeter, "name" : "M3 Thin Hex Nut", "vendor" : "AndyMark", "partNumber" : "am-1405", "url" : "https://andymark.com/products/m3-0-5-jam-nut", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + } + }, + FastenerSize.M4 : { + NutType.NYLOCK : { + NutFinish.ZINC_PLATED : { "acrossFlats" : 7 * millimeter, "height" : 5 * millimeter, "hexHeight" : 4.17 * millimeter, "insertDiameter" : 5.05 * millimeter, "name" : "M4 Nylock Nut", "vendor" : "AndyMark", "partNumber" : "am-1435", "url" : "https://andymark.com/products/m4-0-7-nylock-nut", "material" : STEEL, "appearance" : ZINC_COATED_STEEL } + } + } + } + }; + +export const WASHERS = { + FastenerVendor.GENERIC : { + FastenerSize.NO_4_40 : { + WasherType.OD_5_16_X_0_032 : { + WasherFinish.BLACK : { "innerDiameter" : 0.125 * inch, "outerDiameter" : 0.3125 * inch, "thickness" : 0.032 * inch, "name" : "#4 Washer (5/16 in OD x 0.032 in)", "material" : STEEL, "appearance" : BLACK } + } + }, + FastenerSize.NO_6_32 : { + WasherType.OD_3_8_X_0_049 : { + WasherFinish.BLACK : { "innerDiameter" : 0.156 * inch, "outerDiameter" : 0.375 * inch, "thickness" : 0.049 * inch, "name" : "#6 Washer (3/8 in OD x 0.049 in)", "material" : STEEL, "appearance" : BLACK } + } + }, + FastenerSize.NO_8_32 : { + WasherType.OD_7_16_X_0_049 : { + WasherFinish.BLACK : { "innerDiameter" : 0.188 * inch, "outerDiameter" : 0.4375 * inch, "thickness" : 0.049 * inch, "name" : "#8 Washer (7/16 in OD x 0.049 in)", "material" : STEEL, "appearance" : BLACK } + } + }, + FastenerSize.NO_10_32 : { + WasherType.OD_1_2_X_0_049 : { + WasherFinish.BLACK : { "innerDiameter" : 0.219 * inch, "outerDiameter" : 0.5 * inch, "thickness" : 0.049 * inch, "name" : "#10 Washer (1/2 in OD x 0.049 in)", "material" : STEEL, "appearance" : BLACK } + } + }, + FastenerSize.QUARTER_20 : { + WasherType.OD_5_8_X_0_065 : { + WasherFinish.BLACK : { "innerDiameter" : 0.281 * inch, "outerDiameter" : 0.625 * inch, "thickness" : 0.065 * inch, "name" : "1/4 in Washer (5/8 in OD x 0.065 in)", "material" : STEEL, "appearance" : BLACK } + } + }, + FastenerSize.M3 : { + WasherType.MM_7_X_0_5 : { + WasherFinish.ZINC_PLATED : { "innerDiameter" : 3.2 * millimeter, "outerDiameter" : 7 * millimeter, "thickness" : 0.5 * millimeter, "name" : "M3 Washer (7 mm OD x 0.5 mm)", "material" : STEEL, "appearance" : MEDIUM_GRAY } + } + }, + FastenerSize.M4 : { + WasherType.MM_9_X_0_8 : { + WasherFinish.ZINC_PLATED : { "innerDiameter" : 4.3 * millimeter, "outerDiameter" : 9 * millimeter, "thickness" : 0.8 * millimeter, "name" : "M4 Washer (9 mm OD x 0.8 mm)", "material" : STEEL, "appearance" : MEDIUM_GRAY } + } + } + }, + FastenerVendor.MCMASTER : { + FastenerSize.NO_4_40 : { + WasherType.OD_5_16_X_0_03 : { + WasherFinish.BLACK : { "innerDiameter" : 0.125 * inch, "outerDiameter" : 0.3125 * inch, "thickness" : 0.03 * inch, "name" : "#4 Washer (5/16 in OD x 0.03 in)", "vendor" : "McMaster-Carr", "partNumber" : "96765A110", "url" : "https://www.mcmaster.com/96765A110/", "material" : STAINLESS_STEEL, "appearance" : BLACK }, + WasherFinish.STAINLESS : { "innerDiameter" : 0.125 * inch, "outerDiameter" : 0.3125 * inch, "thickness" : 0.03 * inch, "name" : "#4 Washer (5/16 in OD x 0.03 in, Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92141A005", "url" : "https://www.mcmaster.com/92141A005/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } + } + }, + FastenerSize.NO_6_32 : { + WasherType.OD_5_16_X_0_03 : { + WasherFinish.STAINLESS : { "innerDiameter" : 0.156 * inch, "outerDiameter" : 0.3125 * inch, "thickness" : 0.03 * inch, "name" : "#6 Washer (5/16 in OD x 0.03 in, Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92141A008", "url" : "https://www.mcmaster.com/92141A008/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } + }, + WasherType.OD_3_8_X_0_03 : { + WasherFinish.BLACK : { "innerDiameter" : 0.156 * inch, "outerDiameter" : 0.375 * inch, "thickness" : 0.03 * inch, "name" : "#6 Washer (3/8 in OD x 0.03 in)", "vendor" : "McMaster-Carr", "partNumber" : "96765A115", "url" : "https://www.mcmaster.com/96765A115/", "material" : STAINLESS_STEEL, "appearance" : BLACK } + } + }, + FastenerSize.NO_8_32 : { + WasherType.OD_3_8_X_0_03 : { + WasherFinish.BLACK : { "innerDiameter" : 0.188 * inch, "outerDiameter" : 0.375 * inch, "thickness" : 0.03 * inch, "name" : "#8 Washer (3/8 in OD x 0.03 in)", "vendor" : "McMaster-Carr", "partNumber" : "96765A120", "url" : "https://www.mcmaster.com/96765A120/", "material" : STAINLESS_STEEL, "appearance" : BLACK }, + WasherFinish.STAINLESS : { "innerDiameter" : 0.188 * inch, "outerDiameter" : 0.375 * inch, "thickness" : 0.03 * inch, "name" : "#8 Washer (3/8 in OD x 0.03 in, Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92141A009", "url" : "https://www.mcmaster.com/92141A009/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } + } + }, + FastenerSize.NO_10_32 : { + WasherType.OD_7_16_X_0_03 : { + WasherFinish.BLACK : { "innerDiameter" : 0.219 * inch, "outerDiameter" : 0.4375 * inch, "thickness" : 0.03 * inch, "name" : "#10 Washer (7/16 in OD x 0.03 in)", "vendor" : "McMaster-Carr", "partNumber" : "96765A125", "url" : "https://www.mcmaster.com/96765A125/", "material" : STAINLESS_STEEL, "appearance" : BLACK }, + WasherFinish.STAINLESS : { "innerDiameter" : 0.219 * inch, "outerDiameter" : 0.4375 * inch, "thickness" : 0.03 * inch, "name" : "#10 Washer (7/16 in OD x 0.03 in, Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92141A011", "url" : "https://www.mcmaster.com/92141A011/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } + }, + WasherType.OD_1_2_X_0_04 : { + WasherFinish.BLACK : { "innerDiameter" : 0.219 * inch, "outerDiameter" : 0.5 * inch, "thickness" : 0.04 * inch, "name" : "#10 Washer (1/2 in OD x 0.04 in)", "vendor" : "McMaster-Carr", "partNumber" : "90377A123", "url" : "https://www.mcmaster.com/90377A123/", "material" : STAINLESS_STEEL, "appearance" : BLACK } + } + }, + FastenerSize.QUARTER_20 : { + WasherType.OD_5_8_X_0_05 : { + WasherFinish.BLACK : { "innerDiameter" : 0.281 * inch, "outerDiameter" : 0.625 * inch, "thickness" : 0.05 * inch, "name" : "1/4 in Washer (5/8 in OD x 0.05 in)", "vendor" : "McMaster-Carr", "partNumber" : "96765A140", "url" : "https://www.mcmaster.com/96765A140/", "material" : STAINLESS_STEEL, "appearance" : BLACK }, + WasherFinish.STAINLESS : { "innerDiameter" : 0.281 * inch, "outerDiameter" : 0.625 * inch, "thickness" : 0.05 * inch, "name" : "1/4 in Washer (5/8 in OD x 0.05 in, Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "92141A029", "url" : "https://www.mcmaster.com/92141A029/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } + } + }, + FastenerSize.M3 : { + WasherType.MM_7_X_0_5 : { + WasherFinish.ZINC_PLATED : { "innerDiameter" : 3.2 * millimeter, "outerDiameter" : 7 * millimeter, "thickness" : 0.5 * millimeter, "name" : "M3 Washer (7 mm OD x 0.5 mm)", "vendor" : "McMaster-Carr", "partNumber" : "91166A210", "url" : "https://www.mcmaster.com/91166A210/", "material" : STEEL, "appearance" : MEDIUM_GRAY }, + WasherFinish.STAINLESS : { "innerDiameter" : 3.2 * millimeter, "outerDiameter" : 7 * millimeter, "thickness" : 0.5 * millimeter, "name" : "M3 Washer (7 mm OD x 0.5 mm, Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "93475A210", "url" : "https://www.mcmaster.com/93475A210/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY }, + WasherFinish.BLACK : { "innerDiameter" : 3.2 * millimeter, "outerDiameter" : 7 * millimeter, "thickness" : 0.5 * millimeter, "name" : "M3 Washer (7 mm OD x 0.5 mm, Black)", "vendor" : "McMaster-Carr", "partNumber" : "98269A420", "url" : "https://www.mcmaster.com/98269A420/", "material" : STEEL, "appearance" : BLACK } + } + }, + FastenerSize.M4 : { + WasherType.MM_9_X_0_9 : { + WasherFinish.ZINC_PLATED : { "innerDiameter" : 4.3 * millimeter, "outerDiameter" : 9 * millimeter, "thickness" : 0.9 * millimeter, "name" : "M4 Washer (9 mm OD x 0.9 mm)", "vendor" : "McMaster-Carr", "partNumber" : "91166A230", "url" : "https://www.mcmaster.com/91166A230/", "material" : STEEL, "appearance" : MEDIUM_GRAY }, + WasherFinish.STAINLESS : { "innerDiameter" : 4.3 * millimeter, "outerDiameter" : 9 * millimeter, "thickness" : 0.9 * millimeter, "name" : "M4 Washer (9 mm OD x 0.9 mm, Stainless steel)", "vendor" : "McMaster-Carr", "partNumber" : "93475A230", "url" : "https://www.mcmaster.com/93475A230/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY }, + WasherFinish.BLACK : { "innerDiameter" : 4.3 * millimeter, "outerDiameter" : 9 * millimeter, "thickness" : 0.9 * millimeter, "name" : "M4 Washer (9 mm OD x 0.9 mm, Black)", "vendor" : "McMaster-Carr", "partNumber" : "98687A141", "url" : "https://www.mcmaster.com/98687A141/", "material" : STEEL, "appearance" : BLACK } + } + } + }, + FastenerVendor.WCP : { + FastenerSize.NO_10_32 : { + WasherType.OD_3_8_X_0_012 : { + WasherFinish.BLACK : { "innerDiameter" : 0.219 * inch, "outerDiameter" : 0.375 * inch, "thickness" : 0.012 * inch, "name" : "#10 Washer (3/8 in OD x 0.012 in)", "vendor" : "WCP", "partNumber" : "WCP-0038", "url" : "https://wcproducts.com/products/wcp-0038", "material" : STEEL, "appearance" : BLACK } + }, + WasherType.OD_3_8_X_0_031 : { + WasherFinish.BLACK : { "innerDiameter" : 0.219 * inch, "outerDiameter" : 0.375 * inch, "thickness" : 0.031 * inch, "name" : "#10 Washer (3/8 in OD x 0.031 in)", "vendor" : "WCP", "partNumber" : "WCP-0197", "url" : "https://wcproducts.com/products/wcp-0197", "material" : STEEL, "appearance" : BLACK } + }, + WasherType.OD_5_8_X_0_031 : { + WasherFinish.BLACK : { "innerDiameter" : 0.219 * inch, "outerDiameter" : 0.625 * inch, "thickness" : 0.031 * inch, "name" : "#10 Washer (5/8 in OD x 0.031 in)", "vendor" : "WCP", "partNumber" : "WCP-0523", "url" : "https://wcproducts.com/products/wcp-0523", "material" : STEEL, "appearance" : BLACK } + } + }, + FastenerSize.QUARTER_20 : { + WasherType.OD_3_8_X_0_012 : { + WasherFinish.BLACK : { "innerDiameter" : 0.281 * inch, "outerDiameter" : 0.375 * inch, "thickness" : 0.012 * inch, "name" : "1/4 in Washer (3/8 in OD x 0.012 in)", "vendor" : "WCP", "partNumber" : "WCP-0039", "url" : "https://wcproducts.com/products/wcp-0039", "material" : STEEL, "appearance" : BLACK } + }, + WasherType.OD_3_8_X_0_031 : { + WasherFinish.BLACK : { "innerDiameter" : 0.281 * inch, "outerDiameter" : 0.375 * inch, "thickness" : 0.031 * inch, "name" : "1/4 in Washer (3/8 in OD x 0.031 in)", "vendor" : "WCP", "partNumber" : "WCP-0198", "url" : "https://wcproducts.com/products/wcp-0198", "material" : STEEL, "appearance" : BLACK } + } + } + }, + FastenerVendor.ANDYMARK : { + FastenerSize.NO_6_32 : { + WasherType.OD_5_8_X_0_031 : { + WasherFinish.STAINLESS : { "innerDiameter" : 0.156 * inch, "outerDiameter" : 0.625 * inch, "thickness" : 0.031 * inch, "name" : "#6 Washer (5/8 in OD x 0.031 in, Stainless steel)", "vendor" : "AndyMark", "partNumber" : "am-1658", "url" : "https://andymark.com/products/6-x-0-625-in-od-fender-washer", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } + } + }, + FastenerSize.NO_10_32 : { + WasherType.OD_3_4_X_0_062 : { + WasherFinish.ZINC_PLATED : { "innerDiameter" : 0.219 * inch, "outerDiameter" : 0.75 * inch, "thickness" : 0.062 * inch, "name" : "#10 Washer (3/4 in OD x 0.062 in, Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1523", "url" : "https://andymark.com/products/10-x-0-75-in-fender-washer", "material" : STEEL, "appearance" : MEDIUM_GRAY } + }, + WasherType.OD_1_X_0_062 : { + WasherFinish.ZINC_PLATED : { "innerDiameter" : 0.219 * inch, "outerDiameter" : 1 * inch, "thickness" : 0.062 * inch, "name" : "#10 Washer (1 in OD x 0.062 in, Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1575", "url" : "https://andymark.com/products/10-x-1-in-fender-washer", "material" : STEEL, "appearance" : MEDIUM_GRAY } + } + }, + FastenerSize.QUARTER_20 : { + WasherType.OD_5_8_X_0_063 : { + WasherFinish.ZINC_PLATED : { "innerDiameter" : 0.281 * inch, "outerDiameter" : 0.625 * inch, "thickness" : 0.063 * inch, "name" : "1/4 in Washer (5/8 in OD x 0.063 in, Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1027", "url" : "https://andymark.com/products/1-4-in-flat-washer", "material" : STEEL, "appearance" : MEDIUM_GRAY } + }, + WasherType.OD_1_X_0_062 : { + WasherFinish.ZINC_PLATED : { "innerDiameter" : 0.281 * inch, "outerDiameter" : 1 * inch, "thickness" : 0.062 * inch, "name" : "1/4 in Washer (1 in OD x 0.062 in, Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1421", "url" : "https://andymark.com/products/1-4-in-x-1-in-fender-washer", "material" : STEEL, "appearance" : MEDIUM_GRAY } + }, + WasherType.OD_3_X_0_06 : { + WasherFinish.ZINC_PLATED : { "innerDiameter" : 0.252 * inch, "outerDiameter" : 3 * inch, "thickness" : 0.06 * inch, "name" : "1/4 in Washer (3 in OD x 0.06 in, Zinc plated)", "vendor" : "AndyMark", "partNumber" : "am-1628", "url" : "https://andymark.com/products/1-4-in-id-3-in-od-fender-washer", "material" : STEEL, "appearance" : MEDIUM_GRAY } + } + } + }, + FastenerVendor.GOBILDA : { + FastenerSize.M4 : { + WasherType.MM_8_X_1 : { + WasherFinish.ZINC_PLATED : { "innerDiameter" : 4 * millimeter, "outerDiameter" : 8 * millimeter, "thickness" : 1 * millimeter, "name" : "M4 Washer (8 mm OD x 1 mm)", "vendor" : "goBILDA", "partNumber" : "2801-0004-0008", "url" : "https://www.gobilda.com/washers", "material" : STEEL, "appearance" : MEDIUM_GRAY } + }, + WasherType.MM_10_9_X_1_5 : { + WasherFinish.ZINC_PLATED : { "innerDiameter" : 4.15 * millimeter, "outerDiameter" : 10.9 * millimeter, "thickness" : 1.5 * millimeter, "name" : "M4 Washer (10.9 mm OD x 1.5 mm)", "vendor" : "goBILDA", "partNumber" : "2801-0004-0011", "url" : "https://www.gobilda.com/washers", "material" : STEEL, "appearance" : MEDIUM_GRAY } + } + } + }, + FastenerVendor.REV : { + FastenerSize.M3 : { + WasherType.MM_7_X_0_5 : { + WasherFinish.STAINLESS : { "innerDiameter" : 3.2 * millimeter, "outerDiameter" : 7 * millimeter, "thickness" : 0.5 * millimeter, "name" : "M3 Washer (7 mm OD x 0.5 mm, Stainless steel)", "vendor" : "REV", "partNumber" : "REV-41-2886", "url" : "https://www.revrobotics.com/rev-41-2886/", "material" : STAINLESS_STEEL, "appearance" : STEEL_GRAY } + } + } + } + }; diff --git a/featurescripts/fasteners/fastenerTables.py b/featurescripts/fasteners/fastenerTables.py new file mode 100644 index 00000000..95486ef6 --- /dev/null +++ b/featurescripts/fasteners/fastenerTables.py @@ -0,0 +1,1652 @@ +"""FRCDesign's library fasteners, generated for FRCDesignApp: screws, washers, and nuts for FRC, and FTC's metric ones +(`FTC`, whose Part Studios ftcFastenerTables.py configures as a part set of their own). Run `uv run fs gen` after +editing. + +This is the source of three things, which must agree: + +- fastenerTables.gen.fs: the enums and data the screw, washer, and nut features build from. +- The configurations of the Part Studios exposing those features, one per kind (`STUDIOS`), which + `fs parts fasteners --test` (in the backend, as ` (TEST)`) and `fs parts fasteners --release` (in FRCDesignLib's + Fasteners document) + build: an input per feature parameter, laid out from what's made by `LookupTable`'s rules (see docs/fs-cli.md's + "Configured Part Studios"): Length shows only the lengths the chosen vendor makes in the chosen size, head, and + finish, and only where there's more than one. +- fasteners.gen.json: the same catalog for FRCDesign, with each studio's configuration as Onshape answers it, which + picks a fastener for each hole and inserts its studio with a configuration of these option ids. FRCDesign stores those configurations in documents, so never rename or + remove a released option id (as with enums stored in documents); add new ones. + +What each vendor makes, and its part numbers, come from FRCDesign's own Fasteners group (vendor/frcdesign-fasteners.json, +a snapshot of its configurations from FRCDesign's public API): screws, McMaster-Carr's nuts, and McMaster-Carr's, WCP's, +and AndyMark's washers. A screw's Fully threaded shows only where a length is sold both ways, and is partly threaded +otherwise. The screws of vendors whose stores list them (`STORES`: WCP and AndyMark) come from their stores instead +(vendor/stores.json), since a store is current where the group may not be. `uv run python +featurescripts/fasteners/fastenerTables.py fetch` refreshes both. Generic offers every screw length any vendor makes, +and SAE washers, without part numbers. + +Each part has one mate connector, where it seats: FRCDesign fastens a screw or nut to the top edge of the washer it +sits on, or to the hole's own edge, so any washer goes under any screw or nut of its size. + +FTC's metric parts come from McMaster-Carr's tables (vendor/mcmaster-metric.json), goBILDA's and REV's stores and +models, and AndyMark's store; docs/ftc-fasteners.md has how each was measured and chosen. + +Dimensions are nominal (ASME B18.3 screws, SAE washers, hex and nylon-insert lock nuts; ISO 4762, 7380 and 10642 for +FTC's): close enough to check fit and clearance, not to make the parts. Clearance holes are std's (`ANSI_V2ClearanceHoleTable`), and tap drills std's +75% engagement ones. +""" + +from __future__ import annotations + +import dataclasses +import json +import pathlib +import re +from fractions import Fraction + +from fs_cli.configured_studios import ConfiguredStudio, Input, LookupTable, Option, read_locations +from fs_cli.gen import Code, Constant, Import +from fs_cli.tables import Enum, inch, mm, string + +FOLDER = pathlib.Path(__file__).parent +SNAPSHOT = json.loads((FOLDER / "vendor" / "frcdesign-fasteners.json").read_text()) +STORES_SNAPSHOT = FOLDER / "vendor" / "stores.json" + +INCH = 0.0254 + + +# Vendors, sizes, and heads + + +FastenerVendor = Enum( + "FastenerVendor", + ["GENERIC", "MCMASTER", "GOBILDA", "REV", "WCP", "ANDYMARK"], + { + "GENERIC": "Generic", + "MCMASTER": "McMaster-Carr", + "GOBILDA": "goBILDA", + "REV": "REV", + "WCP": "WCP", + "ANDYMARK": "AndyMark", + }, +) +# FRCDesign's vendor codes +VENDOR_CODES = {"MCM": "MCMASTER", "REV": "REV", "WCP": "WCP", "AM": "ANDYMARK"} + + +@dataclasses.dataclass +class Size: + id: str + name: str + # As in std's hole tables + hole_table_size: str + threads_per_inch: int + major_diameter: float + tap_drill_diameter: float + close_clearance_diameter: float + free_clearance_diameter: float + # An external thread's, as std's ANSI_ExternalThreadTable has it + minor_diameter: float + unit: str = "in" + + @property + def pitch(self) -> float: + return 1 / self.threads_per_inch + + # A standard socket head's threads run 2D plus this from its tip (ASTM A574) + thread_allowance: float = 0.5 + + +@dataclasses.dataclass +class MetricSize: + """In millimeters, as std's ISO hole tables have it; FTC's.""" + + id: str + name: str + hole_table_size: str + pitch: float + major_diameter: float + tap_drill_diameter: float + close_clearance_diameter: float + # ISO 273's normal fit + free_clearance_diameter: float + minor_diameter: float + unit: str = "mm" + # A standard socket head's threads run 2D plus this from its tip (ISO 4762) + thread_allowance: float = 12 + + +SIZES = [ + Size("NO_4_40", "#4-40", "#4", 40, 0.112, 0.089, 0.116, 0.1285, 0.0814), + Size("NO_6_32", "#6-32", "#6", 32, 0.138, 0.1065, 0.144, 0.1495, 0.1), + Size("NO_8_32", "#8-32", "#8", 32, 0.164, 0.136, 0.1695, 0.177, 0.1259), + Size("NO_10_32", "#10-32", "#10", 32, 0.19, 0.159, 0.196, 0.201, 0.1528), + Size("QUARTER_20", "1/4-20", "1/4", 20, 0.25, 0.201, 0.257, 0.266, 0.1894), +] +# FTC's, from std's ISO_ExternalThreadTable, ISO_V2TappedHoleTable (coarse) and ISO_V2ClearanceHoleTable +METRIC_SIZES = [ + MetricSize("M3", "M3 x 0.5", "M3", 0.5, 3, 2.5, 3.2, 3.4, 2.459), + MetricSize("M4", "M4 x 0.7", "M4", 0.7, 4, 3.3, 4.3, 4.5, 3.242), +] +# Imperial sizes are FRC's, metric FTC's: each part set offers only its own +IMPERIAL = {size.id for size in SIZES} +METRIC = {size.id for size in METRIC_SIZES} +SIZES_BY_NAME = {size.name: size for size in SIZES} +FastenerSize = Enum( + "FastenerSize", [size.id for size in SIZES + METRIC_SIZES], {size.id: size.name for size in SIZES + METRIC_SIZES} +) + +ScrewHead = Enum( + "ScrewHead", + ["SOCKET", "BUTTON", "FLAT", "HEX"], + {"SOCKET": "Socket head", "BUTTON": "Button head", "FLAT": "Flat head", "HEX": "Hex head"}, +) +HEAD_CODES = {"SHCS": "SOCKET", "BHCS": "BUTTON", "FHCS": "FLAT"} + + +@dataclasses.dataclass +class Head: + # A hex head's across its corners + diameter: float + height: float + # Across the flats of its hex socket; a hex head has none + socket: float | None + # A flat head's length includes its head, which sits in a countersink of `countersink_angle` + countersunk: bool = False + unit: str = "in" + countersink_angle: int = 82 + # A hex head's + across_flats: float | None = None + + +def _hex_head(across_flats: float, height: float) -> Head: + return Head(round(across_flats * 2 / 3**0.5, 4), height, None, unit="mm", across_flats=across_flats) + + + +HEADS = { + "NO_4_40": {"SOCKET": Head(0.183, 0.112, 3 / 32), "BUTTON": Head(0.213, 0.059, 5 / 64), "FLAT": Head(0.255, 0.083, 1 / 16, True)}, + "NO_6_32": {"SOCKET": Head(0.226, 0.138, 7 / 64), "BUTTON": Head(0.262, 0.074, 5 / 64), "FLAT": Head(0.307, 0.097, 5 / 64, True)}, + "NO_8_32": {"SOCKET": Head(0.27, 0.164, 9 / 64), "BUTTON": Head(0.312, 0.087, 3 / 32), "FLAT": Head(0.359, 0.115, 3 / 32, True)}, + "NO_10_32": {"SOCKET": Head(0.312, 0.19, 5 / 32), "BUTTON": Head(0.375, 0.102, 1 / 8), "FLAT": Head(0.411, 0.132, 1 / 8, True)}, + "QUARTER_20": {"SOCKET": Head(0.375, 0.25, 3 / 16), "BUTTON": Head(0.437, 0.132, 5 / 32), "FLAT": Head(0.531, 0.153, 5 / 32, True)}, + # ISO 4762, 7380 and 10642, which McMaster-Carr's and goBILDA's models measure to (docs/ftc-fasteners.md); a flat + # head sits in a 90 degree countersink. M3's hex heads are REV's hex caps, M4's goBILDA's. + "M3": { + "SOCKET": Head(5.5, 3, 2.5, unit="mm"), + "BUTTON": Head(5.7, 1.65, 2, unit="mm"), + "FLAT": Head(6, 1.7, 2, True, "mm", 90), + "HEX": _hex_head(5.5, 2), + }, + "M4": { + "SOCKET": Head(7, 4, 3, unit="mm"), + "BUTTON": Head(7.6, 2.2, 2.5, unit="mm"), + "FLAT": Head(8, 2.3, 2.5, True, "mm", 90), + "HEX": _hex_head(7, 2.8), + }, +} + + +# Finishes and materials: each part is its vendor's standard, black, unless it sells others too + + +@dataclasses.dataclass(frozen=True) +class Material: + # As Onshape names it, which the part's Material property says + name: str + # robotProperties.fs's constant for it + constant: str + + +STEEL = Material("Steel", "STEEL") +MATERIALS = { + "Steel": STEEL, + "Stainless Steel": Material("Stainless Steel", "STAINLESS_STEEL"), + "Aluminum": Material("Aluminum - 6061", "ALUMINUM"), +} + +FINISH_NAMES = {"BLACK": "Black", "ZINC_PLATED": "Zinc plated", "STAINLESS": "Stainless steel", "ALUMINUM": "Aluminum"} +FINISH_ORDER = list(FINISH_NAMES) +# Each kind its own, so a feature's dialog offers no finish its kind never comes in +ScrewFinish = Enum("ScrewFinish", ["BLACK", "ZINC_PLATED", "ALUMINUM", "STAINLESS"], FINISH_NAMES) +WasherFinish = Enum("WasherFinish", ["BLACK", "ZINC_PLATED", "STAINLESS"], FINISH_NAMES) +# Each finish's appearance, as robotProperties.fs's constant (FRCDesignLib's color standards); WCP's anodized aluminum +# screws' color is unpublished +APPEARANCES = {"BLACK": "BLACK", "ZINC_PLATED": "MEDIUM_GRAY", "STAINLESS": "STEEL_GRAY", "ALUMINUM": "MEDIUM_GRAY"} +# The standards' color for nuts, whatever their finish +NUT_APPEARANCE = "ZINC_COATED_STEEL" +STANDARD_FINISH = "BLACK" + +# A vendor's own words for a finish, after the material: black oxide, WCP's black zinc, or AndyMark's zinc +_FINISH_WORDS = { + "Black Oxide": "BLACK", + "Black Zinc": "BLACK", + "Zinc Plated": "ZINC_PLATED", + "Zink Finish": "ZINC_PLATED", + "Anodized": "ALUMINUM", +} + + +def parse_finish(text: str) -> tuple[Material, str]: + """A part's material and finish from its record's, like `Steel, Black Oxide` or plain `Stainless Steel`.""" + material, _, finish = text.partition(", ") + if not finish: + return MATERIALS[material], "STAINLESS" if material == "Stainless Steel" else STANDARD_FINISH + return MATERIALS[material], _FINISH_WORDS[finish] + + +@dataclasses.dataclass(frozen=True) +class Variant: + """A screw beyond its size, head, and length: its finish, and whether it's threaded its whole length.""" + + finish: str = STANDARD_FINISH + full_thread: bool = False + + @property + def name(self) -> str: + words = ([] if self.finish == STANDARD_FINISH else [FINISH_NAMES[self.finish]]) + ( # type: ignore[index] + ["Fully threaded"] if self.full_thread else [] + ) + return ", ".join(words[:1] + [word.lower() for word in words[1:]]) or "Standard" + + +STANDARD = Variant() + + +def _variant_order(variant: Variant) -> tuple: + return (FINISH_ORDER.index(variant.finish), variant.full_thread) + + +# Screws: what each vendor makes, from FRCDesign's records, like `#10-32 x 1-1/4" L BHCS (Steel, Black Oxide)` + + +@dataclasses.dataclass(frozen=True) +class Stock: + part_number: str | None = None + url: str | None = None + material: Material = STEEL + # A screw threaded its whole length, where its vendor says so; otherwise its head's standard threading + full_thread: bool = False + + +_SCREW = re.compile(r'^(#\d+-\d+|1/4-20)\s+x\s+([\d\-/\.]+)"\s*L\s+(SHCS|BHCS|FHCS)\s*\(([^)]*)\)') + + +def parse_inches(text: str) -> Fraction: + """`1-1/4`, `3/8`, `2`, or `0.031`, in inches.""" + whole, dash, part = text.partition("-") + if dash: + return Fraction(whole) + Fraction(part) + return Fraction(text) + + +def _vendor(part: dict) -> str: + [code] = part["vendors"] + return VENDOR_CODES[code] + + +# Vendors' Shopify stores, whose screws replace the group's: each store's vendor, and how its screws are titled +STORES = {"wcproducts.com": "WCP", "andymark.com": "ANDYMARK"} +_STORE_SCREWS = { + # `#10-32 x .375" L BHCS (Steel, Black Oxide) (50-Pack)`, `#10-32 x .250" L BHCS (Aluminum, Anodized)`; not ultra + # low profile ones, whose heads aren't standard, or a Kraken's spares, `#4-40 x 1/4" BHCS (IP8, ...)`, whose drive + # isn't a hex socket + "WCP": re.compile( + r'^(?P#\d+-\d+) x (?P[\d./]+)"? (?:L )?(?PBHCS|SHCS|FHCS) ' + r"\((?PSteel, Black Oxide|Aluminum, Anodized)\)" + ), + # `10-32 x 0.5 in. Button Head Cap Screw`, `1/4-20 x 2 in. Flat Head Cap Screw with Nylon Patch` + "ANDYMARK": re.compile( + r"^(?P\d+-\d+|1/4-20) x (?P[\d./]+) in\.? (?:Hex Drive )?" + r"(?PButton Head Cap Screw|Socket Head Cap Screw|Flat Head Cap Screw|Flat Head Socket Cap Screw)" + r"(?: Black Oxide)?(?P with Nylon(?: Thread Lock)? Patch)?$" + ), +} +_STORE_HEADS = { + "BHCS": "BUTTON", + "SHCS": "SOCKET", + "FHCS": "FLAT", + "Button Head Cap Screw": "BUTTON", + "Socket Head Cap Screw": "SOCKET", + "Flat Head Cap Screw": "FLAT", + "Flat Head Socket Cap Screw": "FLAT", +} + +# What each vendor makes: by vendor, size, and head, each length's variants +Screws = dict[tuple[str, str, str], dict[Fraction, dict[Variant, Stock]]] + + +@dataclasses.dataclass(frozen=True) +class StoreScrew: + key: tuple[str, str, str] + length: Fraction + variant: Variant + has_patch: bool + stock: Stock + + +def _store_screw(product: dict) -> StoreScrew | None: + """A store's product as a catalog screw; None for anything else: another kind of part or size, or a listing + shipped from abroad (`Ships from Sydney - ...`) of a screw the store lists at home too.""" + vendor = STORES[product["store"]] + match = _STORE_SCREWS[vendor].match(product["title"]) + if match is None: + return None + size = match["size"] + size = size if size.startswith("#") or size == "1/4-20" else "#" + size + if size not in SIZES_BY_NAME: + return None + finish_text = match.groupdict().get("finish") + if finish_text is None: + # AndyMark names a zinc plated screw's finish only in its url, like `.../screw-bhcs-1-4-20-x-750-zinc` + zinc = "zinc" in product["title"].lower() or "zinc" in product["url"].lower() + finish_text = "Steel, Zinc Plated" if zinc else "Steel, Black Oxide" + material, finish = parse_finish(finish_text) + return StoreScrew( + (vendor, SIZES_BY_NAME[size].id, _STORE_HEADS[match["head"]]), + parse_inches(match["length"]), + Variant(finish), + bool(match.groupdict().get("patch")), + Stock(product["sku"], product["url"], material), + ) + + +def _store_screws() -> Screws: + """The screws each store sells in a size and head the catalog has: one per length and variant, one without a + thread lock patch where it sells both.""" + chosen: dict[tuple, StoreScrew] = {} + for product in json.loads(STORES_SNAPSHOT.read_text())["products"]: + screw = _store_screw(product) + if screw is None: + continue + slot = (screw.key, screw.length, screw.variant) + if slot not in chosen or chosen[slot].has_patch and not screw.has_patch: + chosen[slot] = screw + screws: Screws = {} + for screw in chosen.values(): + screws.setdefault(screw.key, {}).setdefault(screw.length, {})[screw.variant] = screw.stock + return screws + + +def _option_names(part: dict, record: dict) -> list[str]: + """The names of a record's options in its group's configuration, its parameters' defaults where it has none.""" + chosen = dict(entry.split("=", 1) for entry in record["configurationKey"].split(";") if entry) + return [ + option["name"] + for parameter in part["parameters"] + for option in parameter["options"] + if option["id"] == chosen.get(parameter["id"], parameter["default"]) + ] + + +def _stocked_screws() -> Screws: + stocked: Screws = {} + for part in SNAPSHOT["parts"]: + if " Bolt (" not in part["name"]: + continue + vendor = _vendor(part) + if vendor in STORES.values(): + continue + for record in part["records"]: + match = _SCREW.match(record["name"]) + assert match, record["name"] + size, length, head, finish_text = match.groups() + material, finish = parse_finish(finish_text) + # McMaster-Carr sells some long socket heads both partly threaded, its standard, and fully threaded + full_thread = any("Full Thread" in name for name in _option_names(part, record)) + key = (vendor, SIZES_BY_NAME[size].id, HEAD_CODES[head]) + variants = stocked.setdefault(key, {}).setdefault(parse_inches(length), {}) + variants[Variant(finish, full_thread)] = Stock(record["partNumber"], record.get("url"), material) + stocked.update(_store_screws()) + for variants in (variants for lengths in stocked.values() for variants in lengths.values()): + # Where a length is only sold fully threaded, that's its standard + for variant in [variant for variant in variants if variant.full_thread]: + if Variant(variant.finish) not in variants: + variants[Variant(variant.finish)] = variants.pop(variant) + # Generic: every length anyone makes, in the standard variant alone + for (_, size, head), lengths in list(stocked.items()): + generic = stocked.setdefault(("GENERIC", size, head), {}) + for length in lengths: + generic[length] = {STANDARD: Stock()} + return { + key: { + length: dict(sorted(variants.items(), key=lambda item: _variant_order(item[0]))) + for length, variants in sorted(lengths.items()) + } + for key, lengths in sorted(stocked.items(), key=_screw_order) + } + + +def _screw_order(item) -> tuple: + vendor, size, head = item[0] + return (FastenerVendor.values.index(vendor), FastenerSize.values.index(size), ScrewHead.values.index(head)) + + +SCREWS = _stocked_screws() + + +@dataclasses.dataclass(frozen=True, order=True) +class Millimeters: + """A metric screw's length; an imperial one's is a Fraction of an inch.""" + + value: int + + +Length = Fraction | Millimeters + + +# FTC's metric screws: McMaster-Carr's (vendor/mcmaster-metric.json, transcribed from its tables), goBILDA's and REV's +# (from their stores and models; see docs/ftc-fasteners.md), and AndyMark's (its store, as for FRC) + +MCMASTER_METRIC = json.loads((FOLDER / "vendor" / "mcmaster-metric.json").read_text()) +STAINLESS = MATERIALS["Stainless Steel"] +# A finish's material, where a vendor's table names none +_FINISH_MATERIALS = {"STAINLESS": STAINLESS} + + +def mcmaster_url(part_number: str) -> str: + return f"https://www.mcmaster.com/{part_number}/" + + +def _mcmaster_supply(supplies: list[dict]) -> dict: + """The supply a team orders: the small pack, imported or United States origin, cheapest by the piece; a large + pack only where there's no small one.""" + small = [supply for supply in supplies if supply["pack"].startswith("SMALL")] + return min(small or supplies, key=lambda supply: supply["price"] / supply["quantity"]) + + +def _mcmaster_stock(supplies: list[dict], finish: str, full_thread: bool = False) -> Stock: + part_number = _mcmaster_supply(supplies)["partNumber"] + return Stock(part_number, mcmaster_url(part_number), _FINISH_MATERIALS.get(finish, STEEL), full_thread) + + +def _mcmaster_screws() -> Screws: + """Where a length comes both ways, partly threaded is its standard and fully threaded a variant, as McMaster-Carr's + FRC screws are.""" + screws: Screws = {} + for head, sizes in MCMASTER_METRIC["screws"].items(): + for size, finishes in sizes.items(): + for finish in ScrewFinish.values: + rows: dict[int, dict[str, list[dict]]] = {} + for row in finishes.get(finish, {"lengths": []})["lengths"]: + rows.setdefault(row["length"], {})[row["threading"]] = row["supplies"] + for length, threadings in rows.items(): + variants = screws.setdefault(("MCMASTER", size, head), {}).setdefault(Millimeters(length), {}) + if len(threadings) == 2: + variants[Variant(finish)] = _mcmaster_stock(threadings["PARTIAL"], finish) + variants[Variant(finish, True)] = _mcmaster_stock(threadings["FULL"], finish, True) + else: + [(threading, supplies)] = threadings.items() + variants[Variant(finish)] = _mcmaster_stock(supplies, finish, threading == "FULL") + return screws + + +GOBILDA_STORE = "https://www.gobilda.com" +# goBILDA's are zinc-plated steel, sold by the SKU of their series, size and length, like 2800-0004-0010; threaded their +# whole length but for its 75 mm socket head +_GOBILDA_SCREWS = { + ("M4", "SOCKET"): ("2800-0004", [5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 25, 30, 35, 40, 45, 50, 55, 60, 75], + "/m4-socket-head-screws"), + ("M4", "BUTTON"): ("2802-0004", [5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 25, 30, 35, 40, 45, 50, 55, 60], + "/m4-button-head-screws"), + ("M4", "HEX"): ("2813-0004", [8, 10, 12, 16], "/m4-hex-head-screws"), + ("M3", "SOCKET"): ("2800-0003", [6, 8, 10, 12], "/m3-socket-head-screws"), +} +# REV's are zinc-plated steel, threaded their whole length +REV_STORE = "https://www.revrobotics.com" +_REV_SCREWS = { + ("M3", "HEX"): { + 6: "REV-41-1713", 8: "REV-41-1359", 10: "REV-41-1123", 16: "REV-41-1360", 20: "REV-41-1124", 25: "REV-41-1715", + 35: "REV-41-1125", + }, +} +_REV_SCREW_PAGES = {"HEX": "/M3-Hex-Cap-Screws/"} + + +def _gobilda_screws() -> Screws: + return { + ("GOBILDA", size, head): { + Millimeters(length): { + Variant("ZINC_PLATED"): Stock(f"{series}-{length:04d}", GOBILDA_STORE + page, STEEL, length <= 60) + } + for length in lengths + } + for (size, head), (series, lengths, page) in _GOBILDA_SCREWS.items() + } + + +def _rev_screws() -> Screws: + return { + ("REV", size, head): { + Millimeters(length): {Variant("ZINC_PLATED"): Stock(part, REV_STORE + _REV_SCREW_PAGES[head], STEEL, True)} + for length, part in parts.items() + } + for (size, head), parts in _REV_SCREWS.items() + } + + +# `M4-0.7 x 10 mm Socket Head Cap Screw`, `M3-0.5 x 5 mm Zinc Flat Head Cap Screw with Nylon Patch` +_METRIC_STORE_SCREW = re.compile( + r"^(?PM[34])-0\.[57] x (?P\d+) mm (?:Zinc |Black Oxide )?" + r"(?PButton Head Cap Screw|Socket Head Cap Screw|Flat Head Cap Screw)" + r"(?: Black Oxide)?(?P with (?:Nylon )?(?:Thread (?:Lock )?)?Patch)?$" +) +# AndyMark's finish where it isn't zinc plating, which its titles leave out; its M4 flat heads take a Phillips driver +_ANDYMARK_FINISHES = {"am-1251": "BLACK", "am-1441": "BLACK", "am-1379": "STAINLESS", "am-1659": "STAINLESS"} +_ANDYMARK_PHILLIPS = {"am-1788", "am-1789"} + + +def _metric_store_screw(product: dict) -> StoreScrew | None: + """AndyMark's metric screws, as `_store_screw` reads its imperial ones.""" + if product["store"] != "andymark.com" or product["sku"] in _ANDYMARK_PHILLIPS: + return None + match = _METRIC_STORE_SCREW.match(product["title"]) + if match is None: + return None + finish = _ANDYMARK_FINISHES.get(product["sku"], "ZINC_PLATED") + return StoreScrew( + ("ANDYMARK", match["size"], _STORE_HEADS[match["head"]]), + Millimeters(int(match["length"])), + Variant(finish), + bool(match["patch"]), + Stock(product["sku"], product["url"], _FINISH_MATERIALS.get(finish, STEEL)), + ) + + +def _andymark_metric_screws() -> Screws: + chosen: dict[tuple, StoreScrew] = {} + for product in json.loads(STORES_SNAPSHOT.read_text())["products"]: + screw = _metric_store_screw(product) + if screw is None: + continue + slot = (screw.key, screw.length, screw.variant) + if slot not in chosen or chosen[slot].has_patch and not screw.has_patch: + chosen[slot] = screw + screws: Screws = {} + for screw in chosen.values(): + screws.setdefault(screw.key, {}).setdefault(screw.length, {})[screw.variant] = screw.stock + return screws + + +# Finishes in the order FTC's studios list them, cheapest first (docs/ftc-fasteners.md): McMaster-Carr's stainless +# socket and button heads cost no more than its others, and its zinc-plated nuts and washers least +METRIC_SCREW_FINISHES = ["STAINLESS", "ZINC_PLATED", "BLACK"] +METRIC_FINISHES = ["ZINC_PLATED", "STAINLESS", "BLACK"] + + +def _metric_screws() -> Screws: + """Generic offers every length any vendor makes, in the first finish alone.""" + stocked: Screws = {} + for screws in (_mcmaster_screws(), _gobilda_screws(), _rev_screws(), _andymark_metric_screws()): + stocked.update(screws) + for (_, size, head), lengths in list(stocked.items()): + generic = stocked.setdefault(("GENERIC", size, head), {}) + for length in lengths: + generic[length] = {Variant(METRIC_SCREW_FINISHES[0]): Stock(material=STAINLESS)} + order = {finish: index for index, finish in enumerate(METRIC_SCREW_FINISHES)} + return { + key: { + length: dict(sorted(variants.items(), key=lambda item: (order[item[0].finish], item[0].full_thread))) + for length, variants in sorted(lengths.items()) + } + for key, lengths in sorted(stocked.items(), key=_screw_order) + } + + +METRIC_SCREWS = _metric_screws() +SCREWS = {**SCREWS, **METRIC_SCREWS} +# Imperial lengths first, as they were before FTC's +LENGTHS = sorted({length for key, lengths in SCREWS.items() if key[1] in IMPERIAL for length in lengths}) + sorted( + {length for key, lengths in METRIC_SCREWS.items() for length in lengths} +) + + +def has_full_thread_choice(variants: dict[Variant, Stock], finish: str) -> bool: + """Whether a length is sold both partly and fully threaded in a finish, so the studio asks which.""" + return Variant(finish) in variants and Variant(finish, True) in variants + + +def length_id(length: Length) -> str: + """e.g. IN_0_375 for 3/8 in, IN_1_25 for 1-1/4 in, MM_10 for 10 mm""" + if isinstance(length, Millimeters): + return f"MM_{length.value}" + return "IN_" + f"{float(length):g}".replace(".", "_") + + +def length_meters(length: Length) -> float: + return round(length.value / 1000 if isinstance(length, Millimeters) else float(length) * INCH, 9) + + +def length_name(length: Length) -> str: + """e.g. 3/8 in, 1-1/4 in, or 10 mm""" + if isinstance(length, Millimeters): + return f"{length.value} mm" + whole, part = divmod(length, 1) + if part == 0: + return f"{whole} in" + if whole == 0: + return f"{part} in" + return f"{whole}-{part} in" + + +ScrewLength = Enum( + "ScrewLength", [length_id(length) for length in LENGTHS], {length_id(length): length_name(length) for length in LENGTHS} +) + + +# Nuts: McMaster-Carr's alone, like `#10-32 Thin Nylon-Insert Locknut` + + +NutType = Enum( + "NutType", + ["NYLOCK", "THIN_NYLOCK", "HEX", "THIN_HEX", "SQUARE"], + {"NYLOCK": "Nylock", "THIN_NYLOCK": "Thin nylock", "HEX": "Hex", "THIN_HEX": "Thin hex", "SQUARE": "Square"}, +) +NUT_CODES = { + "Nylon-Insert Locknut": "NYLOCK", + "Thin Nylon-Insert Locknut": "THIN_NYLOCK", + "Hex Nut": "HEX", + "Thin Hex Nut": "THIN_HEX", + "Square Nut": "SQUARE", +} + + +@dataclasses.dataclass +class Nut: + # A square nut's width + across_flats: float | Fraction + height: float | Fraction + # A nylock's: its hex's height, under the dome holding its nylon insert, and the insert's bore + hex_height: float | Fraction | None = None + insert_diameter: float | None = None + unit: str = "in" + + +def _nylock(across_flats: float, height: float) -> Nut: + """A nylock with no McMaster-Carr model measured, in the proportions of the measured ones: a dome a sixth of its + height, and an insert 0.61 of its width across.""" + return Nut(across_flats, height, height * 5 / 6, 0.61 * across_flats) + + +# Measured from McMaster-Carr's models where there's a Fraction; the rest are nominal +NUT_DIMENSIONS = { + "NO_4_40": { + "NYLOCK": _nylock(0.25, 0.141), + "THIN_NYLOCK": _nylock(0.25, 0.109), + "HEX": Nut(0.25, 0.094), + "THIN_HEX": Nut(0.25, 0.063), + }, + "NO_6_32": { + "NYLOCK": Nut(Fraction(5, 16), Fraction(11, 64), Fraction(55, 384), 0.183127), + "THIN_NYLOCK": Nut(Fraction(5, 16), Fraction(1, 8), Fraction(5, 48), 0.190939), + "HEX": Nut(Fraction(5, 16), Fraction(7, 64)), + "THIN_HEX": Nut(Fraction(1, 4), Fraction(3, 32)), + }, + "NO_8_32": { + "NYLOCK": _nylock(0.34375, 0.203), + "THIN_NYLOCK": _nylock(0.34375, 0.141), + "HEX": Nut(0.34375, 0.125), + "SQUARE": Nut(0.34375, 0.125), + }, + "NO_10_32": { + "NYLOCK": Nut(Fraction(3, 8), Fraction(15, 64), Fraction(25, 128), 0.228966), + "THIN_NYLOCK": Nut(Fraction(3, 8), Fraction(11, 64), Fraction(17, 128), 0.228966), + "HEX": Nut(Fraction(3, 8), Fraction(1, 8)), + "SQUARE": Nut(Fraction(3, 8), Fraction(1, 8)), + }, + "QUARTER_20": { + "NYLOCK": _nylock(0.4375, 0.312), + "THIN_NYLOCK": _nylock(0.4375, 0.203), + "HEX": Nut(0.4375, 0.219), + "SQUARE": Nut(Fraction(7, 16), Fraction(7, 32)), + }, +} + +_NUT = re.compile(r"^(#\d+-\d+|1/4-20)\s+(.+)$") + + +# Nuts come in finishes, FRC's in McMaster-Carr's zinc plating alone +NutFinish = Enum("NutFinish", ["ZINC_PLATED", "STAINLESS", "BLACK"], FINISH_NAMES) +FRC_NUT_FINISH = "ZINC_PLATED" + + +def _stocked_nuts() -> dict[tuple[str, str, str, str], Stock]: + stocked: dict[tuple[str, str, str, str], Stock] = {} + for part in SNAPSHOT["parts"]: + if not part["name"].endswith(" Nut"): + continue + for record in part["records"]: + match = _NUT.match(record["name"]) + assert match, record["name"] + size, kind = match.groups() + key = (SIZES_BY_NAME[size].id, NUT_CODES[kind]) + stocked[("MCMASTER", *key, FRC_NUT_FINISH)] = Stock(record["partNumber"], record.get("url")) + assert {(size, type) for _, size, type, _ in stocked} == { + (size, type) for size, types in NUT_DIMENSIONS.items() for type in types + }, "Every nut needs its dimensions" + return dict( + sorted( + stocked.items(), + key=lambda item: ( + FastenerVendor.values.index(item[0][0]), + FastenerSize.values.index(item[0][1]), + NutType.values.index(item[0][2]), + ), + ) + ) + + +NUTS = _stocked_nuts() + + +# FTC's metric nuts, in millimeters, by vendor, size, and type, since their vendors' differ: McMaster-Carr's from its +# tables and its models of 90591A255 and 94645A101, goBILDA's and REV's from theirs, and Generic's and AndyMark's as +# McMaster-Carr's and REV's of the same type (AndyMark publishes no models). An M3 nylock is REV's REV-41-1361. +_M3_NYLOCK = Nut(5.5, 4, 3.33, 3.35, "mm") +_M4_NYLOCK = Nut(7, 5, 4.17, 5.05, "mm") +METRIC_NUT_DIMENSIONS = { + ("GENERIC", "M3", "NYLOCK"): _M3_NYLOCK, + ("GENERIC", "M4", "NYLOCK"): _M4_NYLOCK, + ("GENERIC", "M3", "HEX"): Nut(5.5, 2.4, unit="mm"), + ("GENERIC", "M4", "HEX"): Nut(7, 3.2, unit="mm"), + ("MCMASTER", "M3", "NYLOCK"): _M3_NYLOCK, + ("MCMASTER", "M4", "NYLOCK"): _M4_NYLOCK, + ("MCMASTER", "M3", "HEX"): Nut(5.5, 2.4, unit="mm"), + ("MCMASTER", "M4", "HEX"): Nut(7, 3.2, unit="mm"), + ("GOBILDA", "M4", "NYLOCK"): Nut(7, 4.85, 4.04, 4.37, "mm"), + ("GOBILDA", "M4", "HEX"): Nut(7, 2.75, unit="mm"), + ("GOBILDA", "M4", "SQUARE"): Nut(7, 3, unit="mm"), + ("REV", "M3", "NYLOCK"): _M3_NYLOCK, + ("REV", "M3", "HEX"): Nut(5.5, 2.4, unit="mm"), + ("ANDYMARK", "M3", "NYLOCK"): _M3_NYLOCK, + ("ANDYMARK", "M3", "HEX"): Nut(5.5, 2.4, unit="mm"), + ("ANDYMARK", "M3", "THIN_HEX"): Nut(5.5, 1.8, unit="mm"), + ("ANDYMARK", "M4", "NYLOCK"): _M4_NYLOCK, +} +_GOBILDA_NUTS = {("M4", "NYLOCK"): "2812-0004-0007", ("M4", "HEX"): "2811-0004-0007", ("M4", "SQUARE"): "2803-0007-0007"} +_REV_NUTS = {("M3", "NYLOCK"): "REV-41-1361", ("M3", "HEX"): "REV-41-1126"} +_ANDYMARK_NUTS = { + ("M3", "NYLOCK"): ("am-1023", "m3-0-5-nylock-nut"), + ("M3", "HEX"): ("am-1386", "m3-nut"), + ("M3", "THIN_HEX"): ("am-1405", "m3-0-5-jam-nut"), + ("M4", "NYLOCK"): ("am-1435", "m4-0-7-nylock-nut"), +} + + +def nut_dimensions(vendor: str, size: str, type: str) -> Nut: + return METRIC_NUT_DIMENSIONS[(vendor, size, type)] if size in METRIC else NUT_DIMENSIONS[size][type] + + +def _metric_nuts() -> dict[tuple[str, str, str, str], Stock]: + stocked: dict[tuple[str, str, str, str], Stock] = {} + for vendor, size, type in METRIC_NUT_DIMENSIONS: + if vendor == "GENERIC": + stocked[(vendor, size, type, METRIC_FINISHES[0])] = Stock() + for type, sizes in MCMASTER_METRIC["nuts"].items(): + for size, finishes in sizes.items(): + for finish in METRIC_FINISHES: + stocked[("MCMASTER", size, type, finish)] = _mcmaster_stock(finishes[finish], finish) + for (size, type), part in _GOBILDA_NUTS.items(): + stocked[("GOBILDA", size, type, "ZINC_PLATED")] = Stock(part, GOBILDA_STORE + "/nuts/") + for (size, type), part in _REV_NUTS.items(): + stocked[("REV", size, type, "ZINC_PLATED")] = Stock(part, REV_STORE + "/M3-Nuts/") + for (size, type), (part, handle) in _ANDYMARK_NUTS.items(): + stocked[("ANDYMARK", size, type, "ZINC_PLATED")] = Stock(part, f"https://andymark.com/products/{handle}") + assert {key[:3] for key in stocked} == set(METRIC_NUT_DIMENSIONS), "Every nut needs its dimensions" + return dict( + sorted( + stocked.items(), + key=lambda item: ( + FastenerVendor.values.index(item[0][0]), + FastenerSize.values.index(item[0][1]), + NutType.values.index(item[0][2]), + METRIC_FINISHES.index(item[0][3]), + ), + ) + ) + + +METRIC_NUTS = _metric_nuts() +NUTS = {**NUTS, **METRIC_NUTS} + + +# Washers, like `#10 Washer (7/16" OD, 0.03" WD, Stainless Steel, Black Oxide)` or AndyMark's +# `0.281" Washer (1" OD, 0.062" WD, Steel, Zink Finish)`; Generic's are SAE flat, and black + + +@dataclasses.dataclass(frozen=True) +class Washer: + inner_diameter: float + outer_diameter: Fraction + thickness: str + stock: Stock = Stock() + unit: str = "in" + + @property + def type(self) -> str: + """e.g. OD_7_16_X_0_03, for 7/16 in OD and 0.03 in thick, or MM_9_X_0_9""" + if self.unit == "mm": + return f"MM_{self.outer_diameter:g}_X_{self.thickness}".replace(".", "_") + return washer_type(self.outer_diameter, self.thickness) + + @property + def type_name(self) -> str: + """e.g. 7/16 in OD x 0.03 in, or 9 mm OD x 0.9 mm""" + if self.unit == "mm": + return f"{self.outer_diameter:g} mm OD x {self.thickness} mm" + return washer_type_name(self.outer_diameter, self.thickness) + + +# SAE flat washers' inner diameters, which FRCDesign's records leave out +WASHER_INNER_DIAMETERS = {"NO_4_40": 0.125, "NO_6_32": 0.156, "NO_8_32": 0.188, "NO_10_32": 0.219, "QUARTER_20": 0.281} +GENERIC_WASHERS = { + "NO_4_40": ("5/16", "0.032"), + "NO_6_32": ("3/8", "0.049"), + "NO_8_32": ("7/16", "0.049"), + "NO_10_32": ("1/2", "0.049"), + "QUARTER_20": ("5/8", "0.065"), +} +_WASHER = re.compile(r'^(#\d+|[\d/\.-]+"(?: ID)?) Washer \(([\d/\.]+)" OD, ([\d\.]+)" WD, ([^)]*)\)') +# The sizes that fit a screw; AndyMark's bores, like `0.281"`, are stated +_WASHER_SIZES = { + "#4": "NO_4_40", + "#6": "NO_6_32", + "#8": "NO_8_32", + "#10": "NO_10_32", + '1/4" ID': "QUARTER_20", + '0.252"': "QUARTER_20", + '0.281"': "QUARTER_20", +} +# FRCDesign's record names am-1027 by its outer diameter; its configuration option says its bore is 0.281 in +_WASHER_NAMES = {"am-1027": '0.281" Washer (0.625" OD, 0.063" WD, Steel, Zink Finish)'} + + +def washer_type(outer_diameter: Fraction, thickness: str) -> str: + """e.g. OD_7_16_X_0_03, for 7/16 in OD and 0.03 in thick.""" + return f"OD_{outer_diameter}_X_{thickness}".replace("/", "_").replace(".", "_") + + +def washer_type_name(outer_diameter: Fraction, thickness: str) -> str: + """e.g. 7/16 in OD x 0.03 in""" + return f"{length_name(outer_diameter)} OD x {thickness} in" + + +def _washers() -> dict[tuple[str, str, str, str], Washer]: + """By vendor, size, type, and finish.""" + washers: dict[tuple[str, str, str, str], Washer] = {} + for size, (outer, thickness) in GENERIC_WASHERS.items(): + od = Fraction(outer) + washers[("GENERIC", size, washer_type(od, thickness), STANDARD_FINISH)] = Washer( + WASHER_INNER_DIAMETERS[size], od, thickness + ) + for part in SNAPSHOT["parts"]: + if "Washer" not in part["name"]: + continue + vendor = _vendor(part) + for record in part["records"]: + name = _WASHER_NAMES.get(record["partNumber"], record["name"]) + match = _WASHER.match(name) + assert match, name + size_name, outer, thickness, finish_text = match.groups() + if size_name not in _WASHER_SIZES: + continue + material, finish = parse_finish(finish_text) + size = _WASHER_SIZES[size_name] + inner = float(size_name[:-1]) if size_name.endswith('"') else WASHER_INNER_DIAMETERS[size] + od = parse_inches(outer) + washers[(vendor, size, washer_type(od, thickness), finish)] = Washer( + inner, od, thickness, Stock(record["partNumber"], record.get("url"), material) + ) + return dict( + sorted( + washers.items(), + key=lambda item: ( + FastenerVendor.values.index(item[0][0]), + FastenerSize.values.index(item[0][1]), + item[1].outer_diameter, + float(item[1].thickness), + FINISH_ORDER.index(item[0][3]), + ), + ) + ) + + +WASHERS = _washers() + + +# FTC's metric washers, in millimeters: general purpose ones, Generic's ISO 7089 and in its first finish, McMaster-Carr's +# from its tables, goBILDA's from its models, and REV's taken as standard (it publishes no dimensions) +GENERIC_METRIC_WASHERS = {"M3": (3.2, 7, "0.5"), "M4": (4.3, 9, "0.8")} +_GOBILDA_WASHERS = {"2801-0004-0008": (4, 8, "1"), "2801-0004-0011": (4.15, 10.9, "1.5")} + + +def _metric_washer(size: tuple, stock: Stock = Stock()) -> Washer: + inner, outer, thickness = size + return Washer(inner, Fraction(str(outer)), thickness, stock, "mm") + + +def _metric_washers() -> dict[tuple[str, str, str, str], Washer]: + washers: dict[tuple[str, str, str, str], Washer] = {} + + def add(vendor: str, size: str, finish: str, washer: Washer) -> None: + washers[(vendor, size, washer.type, finish)] = washer + + for size, dimensions in GENERIC_METRIC_WASHERS.items(): + add("GENERIC", size, METRIC_FINISHES[0], _metric_washer(dimensions)) + for size, washer in MCMASTER_METRIC["washers"].items(): + dimensions = washer["dimensions"] + shape = (dimensions["innerDiameter"], dimensions["outerDiameter"], f"{dimensions['thickness']:g}") + for finish in METRIC_FINISHES: + add("MCMASTER", size, finish, _metric_washer(shape, _mcmaster_stock(washer[finish], finish))) + for part, shape in _GOBILDA_WASHERS.items(): + add("GOBILDA", "M4", "ZINC_PLATED", _metric_washer(shape, Stock(part, GOBILDA_STORE + "/washers"))) + add("REV", "M3", "STAINLESS", _metric_washer((3.2, 7, "0.5"), Stock("REV-41-2886", REV_STORE + "/rev-41-2886/", STAINLESS))) + return dict( + sorted( + washers.items(), + key=lambda item: ( + FastenerVendor.values.index(item[0][0]), + FastenerSize.values.index(item[0][1]), + item[1].outer_diameter, + float(item[1].thickness), + METRIC_FINISHES.index(item[0][3]), + ), + ) + ) + + +METRIC_WASHERS = _metric_washers() +# Imperial types first, as they were before FTC's +_WASHER_TYPES = { + washer.type: washer.type_name + for washer in sorted( + WASHERS.values(), key=lambda washer: (washer.outer_diameter, float(washer.thickness)) + ) + + sorted(METRIC_WASHERS.values(), key=lambda washer: (washer.outer_diameter, float(washer.thickness))) +} +WASHERS = {**WASHERS, **METRIC_WASHERS} +WasherType = Enum("WasherType", list(_WASHER_TYPES), _WASHER_TYPES) + + +# What each part is called and sold as: the features set these, and FRCDesignApp indexes the same records + + +SIZES_BY_ID = {size.id: size for size in SIZES + METRIC_SIZES} +HEAD_NAMES = {"SOCKET": "Socket Head", "BUTTON": "Button Head", "FLAT": "Flat Head", "HEX": "Hex Head"} +NUT_NAMES = {"NYLOCK": "Nylock", "THIN_NYLOCK": "Thin Nylock", "HEX": "Hex", "THIN_HEX": "Thin Hex", "SQUARE": "Square"} +# The finish a metric nut's or washer's name leaves unsaid +METRIC_PLAIN_FINISH = "ZINC_PLATED" + + +def screw_name(size: str, head: str, length: Length, variant: Variant = STANDARD, vendor: str = "GENERIC") -> str: + """e.g. `#10-32 x 1/2 in Button Head Screw`, or `... Socket Head Screw (Fully threaded)` beyond the standard. A + metric one is by its size alone, and says its finish but for Generic's, which comes in one: `M4 x 10 mm Socket Head + Screw (Stainless steel)`.""" + if size in IMPERIAL: + name = f"{SIZES_BY_ID[size].name} x {length_name(length)} {HEAD_NAMES[head]} Screw" + return name if variant == STANDARD else f"{name} ({variant.name})" + name = f"{SIZES_BY_ID[size].hole_table_size} x {length_name(length)} {HEAD_NAMES[head]} Screw" + words = ([] if vendor == "GENERIC" else [FINISH_NAMES[variant.finish]]) + ( + ["fully threaded"] if variant.full_thread else [] + ) + words = [word[:1].upper() + word[1:] if index == 0 else word for index, word in enumerate(words)] + return f"{name} ({', '.join(words)})" if words else name + + +def nut_name(size: str, type: str, finish: str = FRC_NUT_FINISH) -> str: + """e.g. `#10-32 Thin Nylock Nut`, or `M4 Nylock Nut (Stainless steel)`.""" + if size in IMPERIAL: + return f"{SIZES_BY_ID[size].name} {NUT_NAMES[type]} Nut" + name = f"{SIZES_BY_ID[size].hole_table_size} {NUT_NAMES[type]} Nut" + return name if finish == METRIC_PLAIN_FINISH else f"{name} ({FINISH_NAMES[finish]})" + + +def washer_name(size: str, type: str, finish: str = STANDARD_FINISH) -> str: + """e.g. `#10 Washer (1/2 in OD x 0.049 in)`, `1/4 in Washer (...)`, `#10 Washer (..., Stainless steel)`, or `M4 + Washer (9 mm OD x 0.9 mm)`.""" + hole = SIZES_BY_ID[size].hole_table_size + plain = STANDARD_FINISH if size in IMPERIAL else METRIC_PLAIN_FINISH + described = [WasherType.names[type]] + ([] if finish == plain else [FINISH_NAMES[finish]]) # type: ignore[index] + return f"{hole}{' in' if hole == '1/4' else ''} Washer ({', '.join(described)})" + + +def vendor_name(vendor: str) -> str | None: + """The name a part's Vendor property says; Generic parts have none.""" + return None if vendor == "GENERIC" else FastenerVendor.names[vendor] # type: ignore[index] + + +@dataclasses.dataclass(frozen=True) +class Record: + """One configuration of a studio: its inputs' options, and the part it makes.""" + + values: dict[str, str] + name: str + vendor: str + stock: Stock + finish: str = STANDARD_FINISH + # robotProperties.fs's constant, when not its finish's + appearance: str | None = None + + def fields(self) -> dict[str, str]: + """What the FeatureScript table holds for it, which the feature sets as the part's properties.""" + vendor = vendor_name(self.vendor) + return { + "name": string(self.name), + **({"vendor": string(vendor)} if vendor else {}), + **_stock_fields(self.stock), + "material": self.stock.material.constant, + "appearance": self.appearance or APPEARANCES[self.finish], + **({"fullyThreaded": "true"} if self.stock.full_thread else {}), + } + + def manifest(self) -> dict: + vendor = vendor_name(self.vendor) + return { + "values": self.values, + "name": self.name, + **({"vendor": vendor} if vendor else {}), + **_stock_json(self.stock), + "material": self.stock.material.name, + } + + +# The studios' configurations: each a lookup table of what's made (see `LookupTable`), whose inputs offer only what's +# made with the choices before them, and are hidden where that's one thing. Each part set's studios offer its own sizes +# (`Catalog`): FRC's imperial ones here, FTC's metric ones in ftcFastenerTables.py. + + +def _list(id: str, name: str, enum: Enum, parameter: str, default: str, order: list[str] | None = None) -> Input: + """An input offering every value of `enum`, those in `order` first, for its table to narrow to what's made.""" + assert enum.names is not None + values = (order or []) + [value for value in enum.values if value not in (order or [])] + options = [Option(value, enum.names[value], value) for value in values] + return Input(id, name, parameter, options, enum_name=enum.name, default=default) + + +@dataclasses.dataclass(frozen=True) +class Defaults: + """Each studio's inputs' defaults, by its table's columns.""" + + screw: tuple[str, str, str, str, str] + nut: tuple[str, str, str, str] + washer: tuple[str, str, str, str] + + +class Catalog: + """One part set's studios, laid out from the parts made in its sizes, and their records: what FRCDesign indexes. + + Args: + finishes: The finishes' order in each studio, cheapest first, where it isn't the enums' own. + """ + + def __init__( + self, + sizes: set[str], + defaults: Defaults, + screw_finishes: list[str] | None = None, + finishes: list[str] | None = None, + ): + self.sizes = [size for size in FastenerSize.values if size in sizes] + self.screws = {key: lengths for key, lengths in SCREWS.items() if key[1] in sizes} + self.nuts = {key: stock for key, stock in NUTS.items() if key[1] in sizes} + self.washers = {key: washer for key, washer in WASHERS.items() if key[1] in sizes} + self.screw_finishes = screw_finishes + self.finishes = finishes + self.screw_table = LookupTable( + ("vendor", "size", "head", "finish", "length"), + [ + key + (variant.finish, length_id(length)) + for key, lengths in self.screws.items() + for length, variants in lengths.items() + for variant in variants + ], + ) + self.nut_table = LookupTable(("vendor", "size", "type", "finish"), list(self.nuts)) + self.washer_table = LookupTable(("vendor", "size", "type", "finish"), list(self.washers)) + self.studios = { + # Nearly every length is in one finish, so Length's conditions are smallest split by finish first + "screw": ConfiguredStudio( + "screw", + "fastenerScrew", + self._screw_inputs(defaults.screw), + factor_first=["finish"], + mate_connector="mateConnector", + ), + "nut": ConfiguredStudio("nut", "fastenerNut", self._nut_inputs(defaults.nut), mate_connector="mateConnector"), + "washer": ConfiguredStudio( + "washer", "fastenerWasher", self._washer_inputs(defaults.washer), mate_connector="mateConnector" + ), + } + self.records = {"screw": self._screw_records(), "nut": self._nut_records(), "washer": self._washer_records()} + + def _screw_inputs(self, defaults: tuple[str, str, str, str, str]) -> list[Input]: + vendor, size, head, finish, length = defaults + both = [ + self.screw_table.shown(key + (variant.finish, length_id(stocked_length))) + for key, stocked in self.screws.items() + for stocked_length, variants in stocked.items() + for variant in variants + if not variant.full_thread and has_full_thread_choice(variants, variant.finish) + ] + table = self.screw_table + return [ + table.input(_list("vendor", "Vendor", FastenerVendor, "vendor", vendor)), + table.input(_list("size", "Size", FastenerSize, "size", size)), + table.input(_list("head", "Head", ScrewHead, "head", head)), + table.input(_list("finish", "Finish", ScrewFinish, "finish", finish, self.screw_finishes)), + table.input(_list("length", "Length", ScrewLength, "length", length)), + # Hidden, and so partly threaded, wherever a length is only sold one way: a switch, since a checkbox shows + # by one condition, and this needs several + Input( + "fullyThreaded", + "Fully threaded", + "fullyThreaded", + [Option("false", "No", "false", both), Option("true", "Yes", "true", both)], + kind="switch", + ), + ] + + def _nut_inputs(self, defaults: tuple[str, str, str, str]) -> list[Input]: + vendor, size, type, finish = defaults + table = self.nut_table + return [ + table.input(_list("vendor", "Vendor", FastenerVendor, "vendor", vendor)), + table.input(_list("size", "Size", FastenerSize, "size", size)), + table.input(_list("type", "Type", NutType, "nutType", type)), + table.input(_list("finish", "Finish", NutFinish, "finish", finish, self.finishes)), + ] + + def _washer_inputs(self, defaults: tuple[str, str, str, str]) -> list[Input]: + vendor, size, type, finish = defaults + table = self.washer_table + return [ + table.input(_list("vendor", "Vendor", FastenerVendor, "vendor", vendor)), + table.input(_list("size", "Size", FastenerSize, "size", size)), + table.input(_list("type", "Type", WasherType, "washerType", type)), + table.input(_list("finish", "Finish", WasherFinish, "finish", finish, self.finishes)), + ] + + def _screw_records(self) -> dict[tuple[str, str, str, str, str, bool], Record]: + """By vendor, size, head, finish, length, and whether it's fully threaded. Fully threaded is only chosen where + a length is sold both ways in its finish, and is false where it's hidden.""" + return { + (vendor, size, head, variant.finish, length_id(length), variant.full_thread): Record( + { + **self.screw_table.shown((vendor, size, head, variant.finish, length_id(length))), + **( + {"fullyThreaded": str(variant.full_thread).lower()} + if has_full_thread_choice(variants, variant.finish) + else {} + ), + }, + screw_name(size, head, length, variant, vendor), + vendor, + stock, + variant.finish, + ) + for (vendor, size, head), lengths in self.screws.items() + for length, variants in lengths.items() + for variant, stock in variants.items() + } + + def _nut_records(self) -> dict[tuple[str, str, str, str], Record]: + """The standards' color is a nut's, whatever its finish, but a black or stainless one's own.""" + return { + (vendor, size, type, finish): Record( + self.nut_table.shown((vendor, size, type, finish)), + nut_name(size, type, finish), + vendor, + stock, + finish, + appearance=NUT_APPEARANCE if finish == FRC_NUT_FINISH else None, + ) + for (vendor, size, type, finish), stock in self.nuts.items() + } + + def _washer_records(self) -> dict[tuple[str, str, str, str], Record]: + return { + (vendor, size, type, finish): Record( + self.washer_table.shown((vendor, size, type, finish)), + washer_name(size, type, finish), + vendor, + washer.stock, + finish, + ) + for (vendor, size, type, finish), washer in self.washers.items() + } + + def washer_finishes(self, vendor: str, size: str, type: str) -> list[str]: + return [finish for (v, s, t, finish) in self.washers if (v, s, t) == (vendor, size, type)] + + def nut_finishes(self, vendor: str, size: str, type: str) -> list[str]: + return [finish for (v, s, t, finish) in self.nuts if (v, s, t) == (vendor, size, type)] + + +# The defaults are what's inserted most from FRCDesign's library: #10-32 x 3/8 in black button heads (from Generic, which +# names no vendor), McMaster-Carr's #10 x 7/16 in OD stainless washers, and #10-32 nylocks +FRC = Catalog( + IMPERIAL, + Defaults( + ("GENERIC", "NO_10_32", "BUTTON", STANDARD_FINISH, length_id(Fraction(3, 8))), + ("MCMASTER", "NO_10_32", "NYLOCK", FRC_NUT_FINISH), + ("MCMASTER", "NO_10_32", "OD_7_16_X_0_03", "STAINLESS"), + ), +) +# FTC's, from what's inserted most from ConfigLib (docs/ftc-fasteners.md): M4 socket heads, nylocks and washers, from the +# first vendor making each, in its cheapest finish; ConfigLib doesn't count lengths +FTC = Catalog( + METRIC, + Defaults( + ("GENERIC", "M4", "SOCKET", METRIC_SCREW_FINISHES[0], length_id(Millimeters(10))), + ("GENERIC", "M4", "NYLOCK", METRIC_FINISHES[0]), + # Type shows only for goBILDA's, which makes two: its 8 mm one is its usual + ("GENERIC", "M4", "MM_8_X_1", METRIC_FINISHES[0]), + ), + METRIC_SCREW_FINISHES, + METRIC_FINISHES, +) + +SCREW_TABLE, NUT_TABLE, WASHER_TABLE = FRC.screw_table, FRC.nut_table, FRC.washer_table +STUDIOS = FRC.studios +RECORDS = FRC.records +SCREW_RECORDS, NUT_RECORDS, WASHER_RECORDS = RECORDS["screw"], RECORDS["nut"], RECORDS["washer"] +# Every part either set makes, which the feature's tables hold +ALL_RECORDS = {kind: {**FRC.records[kind], **FTC.records[kind]} for kind in RECORDS} + +# Where each studio was last released: `fs release` records it beside its definition, FTC's beside +# ftcFastenerTables.py +LOCATIONS = read_locations(pathlib.Path(__file__)) + + +# FeatureScript + + +def _in(value: float | Fraction) -> str: + return inch(round(float(value), 6)) + + +def _map(entries: list[tuple[str, str]], indent: int) -> str: + pad = " " * indent + return "{\n" + ",\n".join(f"{pad} {key} : {value}" for key, value in entries) + f"\n{pad}}}" + + +def _fields(fields: dict[str, str]) -> str: + if not fields: + return "{}" + return "{ " + ", ".join(f"{string(key)} : {value}" for key, value in fields.items()) + " }" + + +def _stock_fields(stock: Stock) -> dict[str, str]: + return {key: string(value) for key, value in (("partNumber", stock.part_number), ("url", stock.url)) if value} + + +def _nested(table: dict[tuple, object], enums: list[Enum], render, indent: int = 8) -> str: + """A map of maps, keyed by each level's enum, from a table keyed by tuples of their values.""" + groups: dict[str, dict] = {} + for key, value in table.items(): + groups.setdefault(key[0], {})[key[1:]] = value + entries = [ + (enums[0][first], render(rest[()]) if len(enums) == 1 else _nested(rest, enums[1:], render, indent + 4)) + for first, rest in groups.items() + ] + return _map(entries, indent) + + +def _length(value: float | Fraction | str, unit: str) -> str: + return _in(float(value)) if unit == "in" else mm(round(float(value), 6)) + + +def _size_fields(size: Size | MetricSize) -> str: + if isinstance(size, Size): + pitch = {"pitch": string(f"{size.threads_per_inch} tpi"), "threadPitch": f"inch / {size.threads_per_inch}"} + else: + pitch = {"pitch": string(f"{size.pitch:g} mm"), "threadPitch": mm(size.pitch)} + return _fields( + { + "name": string(size.name), + "size": string(size.hole_table_size), + **pitch, + "majorDiameter": _length(size.major_diameter, size.unit), + "minorDiameter": _length(size.minor_diameter, size.unit), + "tapDrillDiameter": _length(size.tap_drill_diameter, size.unit), + "closeClearanceDiameter": _length(size.close_clearance_diameter, size.unit), + "freeClearanceDiameter": _length(size.free_clearance_diameter, size.unit), + "threadAllowance": _length(size.thread_allowance, size.unit), + "metric": str(isinstance(size, MetricSize)).lower(), + } + ) + + +def _head_fields(head: Head) -> str: + fields = {"headDiameter": _length(head.diameter, head.unit), "headHeight": _length(head.height, head.unit)} + if head.socket is not None: + fields["socketSize"] = _length(head.socket, head.unit) + if head.countersunk: + fields["countersinkAngle"] = f"{head.countersink_angle} * degree" + if head.across_flats is not None: + fields["acrossFlats"] = _length(head.across_flats, head.unit) + return _fields(fields) + + +def _screw_table() -> dict[tuple, dict[bool, Record]]: + table: dict[tuple, dict[bool, Record]] = {} + for (*key, full_thread), record in ALL_RECORDS["screw"].items(): + table.setdefault(tuple(key), {})[full_thread] = record + return table + + +def _screw_fields(threads: dict[bool, Record]) -> str: + entries = [(string("standard"), _fields(threads[False].fields()))] + if True in threads: + entries.append((string("fullThread"), _fields(threads[True].fields()))) + return "{ " + ", ".join(f"{key} : {value}" for key, value in entries) + " }" + + +def _nut_fields(item: tuple[tuple[str, str, str, str], Record]) -> str: + (vendor, size, type, _), record = item + nut = nut_dimensions(vendor, size, type) + nylock = ( + {"hexHeight": _length(nut.hex_height, nut.unit), "insertDiameter": _length(nut.insert_diameter, nut.unit)} + if nut.hex_height is not None and nut.insert_diameter is not None + else {} + ) + return _fields( + { + "acrossFlats": _length(nut.across_flats, nut.unit), + "height": _length(nut.height, nut.unit), + **nylock, + **record.fields(), + } + ) + + +def _washer_fields(item: tuple[Washer, Record]) -> str: + washer, record = item + return _fields( + { + "innerDiameter": _length(washer.inner_diameter, washer.unit), + "outerDiameter": _length(washer.outer_diameter, washer.unit), + "thickness": _length(washer.thickness, washer.unit), + **record.fields(), + } + ) + + +def _documented(doc: str, name: str, expression: str) -> Code: + return Code(f"/** {doc} */\nexport const {name} = {expression};") + + +CONTENTS = [ + Import("core/robotProperties.fs"), + FastenerVendor, + FastenerSize, + ScrewHead, + ScrewLength, + ScrewFinish, + WasherFinish, + NutFinish, + NutType, + WasherType, + Constant("FASTENER_SIZES", _map([(FastenerSize[size.id], _size_fields(size)) for size in SIZES + METRIC_SIZES], 8)), + Constant( + "SCREW_HEADS", + _nested( + {(size, head): value for size, heads in HEADS.items() for head, value in heads.items()}, + [FastenerSize, ScrewHead], + _head_fields, + ), + ), + Constant( + "SCREW_LENGTHS", + _map( + [ + ( + ScrewLength[length_id(length)], + _fields( + { + "length": mm(length.value) if isinstance(length, Millimeters) else _in(length), + "name": string(length_name(length)), + } + ), + ) + for length in LENGTHS + ], + 8, + ), + ), + _documented( + "What each vendor makes, by vendor, size, head, finish, and length: each screw's properties, partly threaded" + " (`standard`) and, where it's sold so too, fully threaded (`fullThread`).", + "SCREWS", + _nested( + _screw_table(), + [FastenerVendor, FastenerSize, ScrewHead, ScrewFinish, ScrewLength], + _screw_fields, + 4, + ), + ), + Constant( + "NUTS", + _nested( + {key: (key, record) for key, record in ALL_RECORDS["nut"].items()}, + [FastenerVendor, FastenerSize, NutType, NutFinish], + _nut_fields, + ), + ), + Constant( + "WASHERS", + _nested( + {key: (WASHERS[key], record) for key, record in ALL_RECORDS["washer"].items()}, + [FastenerVendor, FastenerSize, WasherType, WasherFinish], + _washer_fields, + ), + ), +] + + +# FRCDesign's manifest + + +def _meters(value: float | Fraction | str, unit: str = "in") -> float: + return round(float(value) * (INCH if unit == "in" else 0.001), 9) + + +def _stock_json(stock: Stock) -> dict: + return {key: value for key, value in (("partNumber", stock.part_number), ("url", stock.url)) if value} + + +def manifest(catalog: Catalog = FRC, locations: dict = LOCATIONS, source: str = "fastenerTables.py") -> dict: + """A part set's manifest, for FRCDesign: its studios and records, and its catalog for Auto Assembly.""" + vendors = {key[0] for parts in (catalog.screws, catalog.nuts, catalog.washers) for key in parts} + sizes = [SIZES_BY_ID[size] for size in catalog.sizes] + heads = [head for head in ScrewHead.values if any(head in HEADS[size.id] for size in sizes)] + metric = all(size.id in METRIC for size in sizes) + screw_finishes = (catalog.screw_finishes or []) + [ + finish for finish in ScrewFinish.values if finish not in (catalog.screw_finishes or []) + ] + return { + "source": f"featurescripts/fasteners/{source}", + "studios": { + kind: { + **studio.manifest(), + "location": locations.get(kind), + "records": [record.manifest() for record in catalog.records[kind].values()], + } + for kind, studio in catalog.studios.items() + }, + "vendors": [ + {"id": id, "name": FastenerVendor.names[id]} # type: ignore[index] + for id in FastenerVendor.values + if id in vendors + ], + "sizes": [ + { + "id": size.id, + "name": size.name, + "majorDiameter": _meters(size.major_diameter, size.unit), + "pitch": _meters(size.pitch, size.unit), + "tapDrillDiameter": _meters(size.tap_drill_diameter, size.unit), + "closeClearanceDiameter": _meters(size.close_clearance_diameter, size.unit), + "freeClearanceDiameter": _meters(size.free_clearance_diameter, size.unit), + } + for size in sizes + ], + "heads": [ + { + "id": head, + "name": ScrewHead.names[head], # type: ignore[index] + "sizes": { + size.id: { + "diameter": _meters(HEADS[size.id][head].diameter, HEADS[size.id][head].unit), + "height": _meters(HEADS[size.id][head].height, HEADS[size.id][head].unit), + "countersunk": HEADS[size.id][head].countersunk, + } + for size in sizes + if head in HEADS[size.id] + }, + } + for head in heads + ], + "screws": [ + { + "vendor": vendor, + "size": size, + "head": head, + "finish": finish, + "lengths": [ + { + "id": length_id(length), + "name": length_name(length), + "length": length_meters(length), + "fullThreadChoice": has_full_thread_choice(variants, finish), + } + for length, variants in lengths.items() + if Variant(finish) in variants + ], + } + for (vendor, size, head), lengths in catalog.screws.items() + for finish in screw_finishes + if any(Variant(finish) in variants for variants in lengths.values()) + ], + "nutTypes": [{"id": id, "name": NutType.names[id]} for id in NutType.values], # type: ignore[index] + "nuts": [ + { + "vendor": vendor, + "size": size, + "type": type, + "acrossFlats": _meters(nut_dimensions(vendor, size, type).across_flats, nut_dimensions(vendor, size, type).unit), + "height": _meters(nut_dimensions(vendor, size, type).height, nut_dimensions(vendor, size, type).unit), + **_stock_json(stock), + # FRC's come in one finish + **({"finishes": catalog.nut_finishes(vendor, size, type)} if metric else {}), + } + for (vendor, size, type, finish), stock in catalog.nuts.items() + if finish == catalog.nut_finishes(vendor, size, type)[0] + ], + "washers": [ + { + "vendor": vendor, + "size": size, + "type": type, + "name": WasherType.names[type], # type: ignore[index] + "innerDiameter": _meters(washer.inner_diameter, washer.unit), + "outerDiameter": _meters(washer.outer_diameter, washer.unit), + "thickness": _meters(washer.thickness, washer.unit), + "finishes": catalog.washer_finishes(vendor, size, type), + } + for (vendor, size, type, finish), washer in catalog.washers.items() + if finish == catalog.washer_finishes(vendor, size, type)[0] + ], + } + + +EXPORTS = {"fasteners.gen.json": json.dumps(manifest(), indent=2) + "\n"} + + +# Refreshing vendor/frcdesign-fasteners.json and vendor/stores.json, which only `fetch` does: `fs gen` runs this file +# without it, and makes no requests + +LIBRARY_API = "https://app.frcdesign.org/api" +# The Fasteners group's parts whose configurations are read: standard screws, nuts, and metal washers +_LIBRARY_PARTS = re.compile(r"^(?:[#\d/-]+ Bolt \((?:MCM|REV|WCP)\)|[#\d/-]+ Nut|Metal Washer \(\w+\))$") + + +def _get_json(url: str): + import urllib.request + + request = urllib.request.Request(url, headers={"User-Agent": "robot-code fastenerTables.py fetch"}) + with urllib.request.urlopen(request, timeout=60) as response: + return json.load(response) + + +def fetch_library() -> None: + """Writes the configurations of FRCDesignLib's Fasteners group's parts this reads (`_LIBRARY_PARTS`), in the + group's order, to vendor/frcdesign-fasteners.json, from FRCDesign's public API.""" + version = _get_json(f"{LIBRARY_API}/library-version/library/frc-design-lib")["version"] + library = _get_json(f"{LIBRARY_API}/library-data/library/frc-design-lib?v={version}") + # Both by id + [group] = [group for group in library["groups"].values() if group["name"] == "Fasteners"] + insertables = library["insertables"] + parts = [] + for insertable_id in group["insertableOrder"]: + insertable = insertables[insertable_id] + if not _LIBRARY_PARTS.match(insertable["name"]): + continue + configuration = _get_json(f"{LIBRARY_API}/configuration/insertable/{insertable_id}?v={version}") + parts.append( + { + "insertableId": insertable_id, + "name": insertable["name"], + "vendors": insertable["vendors"], + "documentId": insertable["documentId"], + "versionId": insertable["versionId"], + "elementId": insertable["elementId"], + "parameters": configuration["parameters"], + "records": configuration["records"], + } + ) + snapshot = { + "source": f"{LIBRARY_API}/configuration/insertable/{{id}}?v={version} (frc-design-lib, Fasteners group)", + "parts": parts, + } + (FOLDER / "vendor" / "frcdesign-fasteners.json").write_text(json.dumps(snapshot, indent=1) + "\n", newline="") + print(f"Wrote {len(parts)} parts to vendor/frcdesign-fasteners.json.") + + +def fetch_stores() -> None: + """Writes each store's products which are catalog screws (`_store_screw`, `_metric_store_screw`) to + vendor/stores.json, from Shopify's product list.""" + import urllib.request + + products = [] + for store in STORES: + for page in range(1, 100): + url = f"https://{store}/products.json?limit=250&page={page}" + # Stores refuse Python's own user agent + request = urllib.request.Request(url, headers={"User-Agent": "robot-code fastenerTables.py fetch"}) + with urllib.request.urlopen(request, timeout=60) as response: + listed = json.load(response)["products"] + if not listed: + break + for product in listed: + if not product["variants"]: + continue + entry = { + "store": store, + "title": product["title"], + "sku": product["variants"][0]["sku"], + "url": f"https://{store}/products/{product['handle']}", + } + if _store_screw(entry) is not None or _metric_store_screw(entry) is not None: + products.append(entry) + products.sort(key=lambda product: (product["store"], product["sku"], product["title"])) + snapshot = {"source": "Each store's /products.json, by fastenerTables.py fetch", "products": products} + STORES_SNAPSHOT.write_text(json.dumps(snapshot, indent=1) + "\n") + print(f"Wrote {len(products)} products to {STORES_SNAPSHOT}.") + + +if __name__ == "__main__": + import sys + + if sys.argv[1:] != ["fetch"]: + sys.exit("Usage: python fastenerTables.py fetch") + fetch_library() + fetch_stores() diff --git a/featurescripts/fasteners/fasteners.fs b/featurescripts/fasteners/fasteners.fs new file mode 100644 index 00000000..650ed8a5 --- /dev/null +++ b/featurescripts/fasteners/fasteners.fs @@ -0,0 +1,698 @@ +FeatureScript 2960; +import(path : "onshape/std/common.fs", version : "2960.0"); +import(path : "onshape/std/cosmeticThreadUtils.fs", version : "2960.0"); +import(path : "onshape/std/externalThread.fs", version : "2960.0"); + +import(path : "6c65805103086c85362ee4b7", version : "c8ae72bd99ee1f581e10e759"); +import(path : "8b8c46128a5dbc2594925f4a", version : "0a4039e144d8b21589cb8d49"); +// Also exports the enums used as parameter types +export import(path : "86033ffc9510cee8dd457b7f", version : "e11a1e8362b815a24360baaf"); + +/** + * FRCDesign's library fasteners: its screws, washers, and nuts, generated for FRCDesignApp, FRC's imperial and FTC's + * metric. Each is made in a Part Studio of its own, whose configuration sets every parameter and offers only what's + * made (see fastenerTables.py), FRC's and FTC's studios each their own sizes, so these dialogs are rarely seen: each + * is a flat list of enums, with no conditions, which the configuration filters. + * + * Each part is built along the Z axis, with one mate connector at the origin pointing out of the hole: where it seats + * against the part or washer it sits on. Screws and nuts are threaded as std's External thread and Hole features thread + * them: cosmetically, with the same hole attributes. + */ + +// Proportions of McMaster-Carr's models, of the head's or shank's diameter +const TIP_CHAMFER = 0.07; +const SOCKET_HEAD_CHAMFER = 0.021; +const BUTTON_HEAD_SIDE = 0.041; +const FLAT_HEAD_BAND = 0.006; +// A button head's flat top, of its socket's size +const BUTTON_HEAD_TOP = 1.4; +// Nuts' and hex heads' chamfers, from the circle across their flats, as McMaster-Carr and REV model them +const NUT_CHAMFER_ANGLE = 30 * degree; +const NYLOCK_CHAMFER_ANGLE = 25 * degree; +// How far a nylock's nylon insert sits below the top of its dome +const NYLON_RECESS = 0.009 * inch; +const NYLON_COLOR = color(1, 1, 1); + +annotation { "Feature Type Name" : "Screw", + "Feature Type Description" : "A standard screw from FRCDesign's library, seated at the origin." ~ CREDIT } +export const fastenerScrew = defineFeature(function(context is Context, id is Id, definition is map) + precondition + { + vendorPredicate(definition); + + sizePredicate(definition); + + annotation { "Name" : "Head", "UIHint" : ["REMEMBER_PREVIOUS_VALUE"] } + definition.head is ScrewHead; + + annotation { "Name" : "Finish", "UIHint" : ["REMEMBER_PREVIOUS_VALUE"] } + definition.finish is ScrewFinish; + + annotation { "Name" : "Length", "UIHint" : ["REMEMBER_PREVIOUS_VALUE"] } + definition.length is ScrewLength; + + annotation { "Name" : "Fully threaded", "Default" : false, "UIHint" : ["REMEMBER_PREVIOUS_VALUE"] } + definition.fullyThreaded is boolean; + } + { + const choices = resolveChoices(SCREWS, definition, ["vendor", "size", "head", "finish", "length"]); + if (choices.unmade == "length") + { + throw regenError("Selected vendor does not make this screw, change the length.", ["length"]); + } + if (choices.unmade != undefined) + { + throw regenError("Selected vendor does not make this screw in this finish, change the finish.", ["finish"]); + } + definition = choices.definition; + const threads = choices.made; + // The configuration hides Fully threaded where a length is sold one way, and a hidden input keeps its last value + const chosen = definition.fullyThreaded && threads.fullThread != undefined; + const stock = chosen ? threads.fullThread : threads.standard; + // Where a vendor says a length is threaded its whole length, it is, whatever its head's standard + const fullThread = chosen || stock.fullyThreaded != undefined; + const size = FASTENER_SIZES[definition.size]; + const head = SCREW_HEADS[definition.size][definition.head]; + const length = SCREW_LENGTHS[definition.length]; + const isHex = isHexHead(definition.head); + + // 1. Revolve the screw's profile: its head above the origin, or a flat head's below it, and its shank down to its + // chamfered tip; a hex head's shank alone, its head extruded on top + const sketchId = id + "profile"; + const sketch = newSketchOnPlane(context, sketchId, { "sketchPlane" : PROFILE_PLANE }); + skPolyline(sketch, "profile", { "points" : screwProfile(size, head, definition.head, length.length) }); + if (definition.head == ScrewHead.BUTTON) + { + skArc(sketch, "dome", buttonDome(head)); + } + skSolve(sketch); + opRevolve(context, id + "revolve", { + "entities" : qSketchRegion(sketchId), + "axis" : line(WORLD_ORIGIN, Z_DIRECTION), + "angleForward" : 2 * PI * radian + }); + if (isHex) + { + addHexHead(context, id + "head", qCreatedBy(id + "revolve", EntityType.BODY), head); + } + // The revolve, or for a hex head the one solid it and the head were joined into; not the socket's cutter + const screw = qBodyType(qUnion([qCreatedBy(id + "revolve", EntityType.BODY), qCreatedBy(id + "head", EntityType.BODY)]), + BodyType.SOLID); + + // 2. Cut its hex socket down from the top of its head; a hex head has none + if (!isHex) + { + addSocket(context, id + "socket", screw, size, head, definition.head); + } + + // 3. Thread its shank up from its tip + addScrewThread(context, id + "thread", screw, size, head, definition.head, length.length, fullThread); + + // 4. Seat it, under its head + addSeatMateConnector(context, id + "mateConnector", screw); + + cleanup(context, id + "deleteSketches", qCreatedBy(id, EntityType.BODY)->qSketchFilter(SketchObject.YES)); + setFastenerProperties(context, screw, stock); + }); + +/** + * Cuts a screw's hex socket down from the top of its head. + */ +function addSocket(context is Context, socketId is Id, screw is Query, size is map, head is map, headType is ScrewHead) +{ + const isFlat = headType == ScrewHead.FLAT; + const top = isFlat ? 0 * meter : head.headHeight; + const socketSketch = newSketchOnPlane(context, socketId + "sketch", { + "sketchPlane" : plane(vector(0 * meter, 0 * meter, top), Z_DIRECTION) + }); + skRegularPolygon(socketSketch, "hex", { + "center" : vector(0, 0) * meter, + "firstVertex" : vector(head.socketSize / sqrt(3), 0 * meter), + "sides" : 6 + }); + skSolve(socketSketch); + opExtrude(context, socketId + "extrude", { + "entities" : qSketchRegion(socketId + "sketch"), + "direction" : -Z_DIRECTION, + "endBound" : BoundingType.BLIND, + "endDepth" : socketDepth(size, head, headType) + }); + opBoolean(context, socketId + "cut", { + "tools" : qCreatedBy(socketId + "extrude", EntityType.BODY), + "targets" : screw, + "operationType" : BooleanOperationType.SUBTRACTION + }); +} + +export function isHexHead(headType is ScrewHead) returns boolean +{ + return headType == ScrewHead.HEX; +} + +/** + * A hex head on a screw's shank, from the origin up: its hex, chamfered on top as a nut is. + */ +function addHexHead(context is Context, id is Id, shank is Query, head is map) +{ + const flat = head.acrossFlats / 2; + const sketchId = id + "hex"; + const sketch = newSketchOnPlane(context, sketchId, { "sketchPlane" : XY_PLANE }); + skRegularPolygon(sketch, "hex", { + "center" : vector(0, 0) * meter, + "firstVertex" : vector(flat * 2 / sqrt(3), 0 * meter), + "sides" : 6 + }); + skSolve(sketch); + opExtrude(context, id + "extrude", { + "entities" : qSketchRegion(sketchId), + "direction" : Z_DIRECTION, + "endBound" : BoundingType.BLIND, + "endDepth" : head.headHeight + }); + + const profileId = id + "chamfer"; + const profile = newSketchOnPlane(context, profileId, { "sketchPlane" : PROFILE_PLANE }); + skPolyline(profile, "profile", { "points" : hexHeadProfile(head) }); + skSolve(profile); + opRevolve(context, id + "revolve", { + "entities" : qSketchRegion(profileId), + "axis" : line(WORLD_ORIGIN, Z_DIRECTION), + "angleForward" : 2 * PI * radian + }); + opBoolean(context, id + "intersect", { + "tools" : qUnion([qCreatedBy(id + "extrude", EntityType.BODY), qCreatedBy(id + "revolve", EntityType.BODY)]), + "operationType" : BooleanOperationType.INTERSECTION + }); + opBoolean(context, id + "union", { + "tools" : qUnion([shank, qCreatedBy(id + "intersect", EntityType.BODY)]), + "operationType" : BooleanOperationType.UNION + }); + cleanup(context, id + "deleteSketches", qUnion([qCreatedBy(sketchId, EntityType.BODY), qCreatedBy(profileId, EntityType.BODY)])); +} + +/** + * The solid a hex head's chamfered within, revolved: up from the origin past its corners, in at its chamfer's angle to + * the circle across its flats at its top, and back down the axis. + */ +export function hexHeadProfile(head is map) returns array +{ + const zero = 0 * meter; + const flat = head.acrossFlats / 2; + const outer = 1.05 * flat * 2 / sqrt(3); + const rise = (outer - flat) * tan(NUT_CHAMFER_ANGLE); + return [vector(zero, zero), vector(outer, zero), vector(outer, head.headHeight - rise), vector(flat, head.headHeight), + vector(zero, head.headHeight), vector(zero, zero)]; +} + +/** + * A washer, from its bottom face at the origin up. + */ +annotation { "Feature Type Name" : "Washer", + "Feature Type Description" : "A washer from FRCDesign's library, from the origin up." ~ CREDIT } +export const fastenerWasher = defineFeature(function(context is Context, id is Id, definition is map) + precondition + { + vendorPredicate(definition); + + sizePredicate(definition); + + annotation { "Name" : "Type", "UIHint" : ["REMEMBER_PREVIOUS_VALUE"] } + definition.washerType is WasherType; + + annotation { "Name" : "Finish", "UIHint" : ["REMEMBER_PREVIOUS_VALUE"] } + definition.finish is WasherFinish; + } + { + const choices = resolveChoices(WASHERS, definition, ["vendor", "size", "washerType", "finish"]); + if (choices.unmade == "finish") + { + throw regenError("Selected vendor does not make this washer in this finish, change the finish.", ["finish"]); + } + if (choices.unmade != undefined) + { + throw regenError("Selected vendor does not make this washer, change the type.", ["washerType"]); + } + const washer = choices.made; + + const sketchId = id + "sketch"; + const sketch = newSketchOnPlane(context, sketchId, { "sketchPlane" : XY_PLANE }); + skCircle(sketch, "outer", { "center" : vector(0, 0) * meter, "radius" : washer.outerDiameter / 2 }); + skCircle(sketch, "inner", { "center" : vector(0, 0) * meter, "radius" : washer.innerDiameter / 2 }); + skSolve(sketch); + opExtrude(context, id + "extrude", { + "entities" : qSketchRegion(sketchId, true), + "direction" : Z_DIRECTION, + "endBound" : BoundingType.BLIND, + "endDepth" : washer.thickness + }); + const body = qCreatedBy(id + "extrude", EntityType.BODY); + + opMateConnector(context, id + "mateConnector", { + "coordSystem" : coordSystem(WORLD_ORIGIN, X_DIRECTION, Z_DIRECTION), + "owner" : body + }); + + cleanup(context, id + "deleteSketches", qCreatedBy(sketchId, EntityType.BODY)); + setFastenerProperties(context, body, washer); + }); + +/** + * A nut, from its bearing face at the origin up. + */ +annotation { "Feature Type Name" : "Nut", + "Feature Type Description" : "A nut from FRCDesign's library, seated at the origin." ~ CREDIT } +export const fastenerNut = defineFeature(function(context is Context, id is Id, definition is map) + precondition + { + vendorPredicate(definition); + + sizePredicate(definition); + + annotation { "Name" : "Type", "UIHint" : ["REMEMBER_PREVIOUS_VALUE"] } + definition.nutType is NutType; + + annotation { "Name" : "Finish", "UIHint" : ["REMEMBER_PREVIOUS_VALUE"] } + definition.finish is NutFinish; + } + { + const choices = resolveChoices(NUTS, definition, ["vendor", "size", "nutType", "finish"]); + if (choices.unmade == "finish") + { + throw regenError("Selected vendor does not make this nut in this finish, change the finish.", ["finish"]); + } + if (choices.unmade != undefined) + { + throw regenError("Selected vendor does not make this nut, change the type.", ["nutType"]); + } + definition = choices.definition; + const nut = choices.made; + const size = FASTENER_SIZES[definition.size]; + const isNylock = isNylockType(definition.nutType); + + // 1. Extrude its hex or square + const sketchId = id + "sketch"; + const sketch = newSketchOnPlane(context, sketchId, { "sketchPlane" : XY_PLANE }); + if (definition.nutType == NutType.SQUARE) + { + skRectangle(sketch, "square", { + "firstCorner" : vector(-nut.acrossFlats / 2, -nut.acrossFlats / 2), + "secondCorner" : vector(nut.acrossFlats / 2, nut.acrossFlats / 2) + }); + } + else + { + skRegularPolygon(sketch, "hex", { + "center" : vector(0, 0) * meter, + "firstVertex" : vector(nut.acrossFlats / sqrt(3), 0 * meter), + "sides" : 6 + }); + } + skSolve(sketch); + opExtrude(context, id + "extrude", { + "entities" : qSketchRegion(sketchId), + "direction" : Z_DIRECTION, + "endBound" : BoundingType.BLIND, + "endDepth" : nut.height + }); + + // 2. Keep what's inside its profile, revolved: its bore, chamfers, and a nylock's dome and insert + const profileId = id + "profile"; + const profileSketch = newSketchOnPlane(context, profileId, { "sketchPlane" : PROFILE_PLANE }); + skPolyline(profileSketch, "profile", { "points" : nutProfile(size, nut, definition.nutType) }); + if (isNylock) + { + skArc(profileSketch, "dome", nylockDome(nut)); + } + skSolve(profileSketch); + opRevolve(context, id + "revolve", { + "entities" : qSketchRegion(profileId), + "axis" : line(WORLD_ORIGIN, Z_DIRECTION), + "angleForward" : 2 * PI * radian + }); + opBoolean(context, id + "intersect", { + "tools" : qUnion([qCreatedBy(id + "extrude", EntityType.BODY), qCreatedBy(id + "revolve", EntityType.BODY)]), + "operationType" : BooleanOperationType.INTERSECTION + }); + // The intersection is a new body, as std's own intersections find it + const body = qCreatedBy(id + "intersect", EntityType.BODY); + + // 3. Tap its bore, up to a nylock's insert, and seat it + addNutThread(context, id + "thread", body, size, isNylock ? nut.height - NYLON_RECESS : nut.height); + addSeatMateConnector(context, id + "mateConnector", body); + + cleanup(context, id + "deleteSketches", qUnion([qCreatedBy(sketchId, EntityType.BODY), qCreatedBy(profileId, EntityType.BODY)])); + setFastenerProperties(context, body, nut); + if (isNylock) + { + const nylon = qOwnedByBody(body, EntityType.FACE)->qGeometry(GeometryType.PLANE) + ->qContainsPoint(vector((size.tapDrillDiameter + nut.insertDiameter) / 4, 0 * meter, nut.height - NYLON_RECESS)); + setProperty(context, { "entities" : nylon, "propertyType" : PropertyType.APPEARANCE, "value" : NYLON_COLOR }); + } + }); + +predicate vendorPredicate(definition is map) +{ + annotation { "Name" : "Vendor", "UIHint" : ["REMEMBER_PREVIOUS_VALUE"] } + definition.vendor is FastenerVendor; +} + +predicate sizePredicate(definition is map) +{ + annotation { "Name" : "Size", "UIHint" : ["REMEMBER_PREVIOUS_VALUE"] } + definition.size is FastenerSize; +} + +/** + * `definition` with each of `parameters`, a level of `entries` each, set to the option it stands for (see `resolve`), + * and what they make (`made`); or the first parameter nothing is made in (`unmade`). + */ +export function resolveChoices(entries is map, definition is map, parameters is array) returns map +{ + var level = entries; + for (var parameter in parameters) + { + const option = resolve(level, definition[parameter]); + if (option == undefined) + { + return { "unmade" : parameter }; + } + definition[parameter] = option; + level = level[option]; + } + return { "definition" : definition, "made" : level }; +} + +/** + * The option of `entries` an input holding `value` stands for: `value` where it's made, or else the one option made. + * The configuration hides an input where only one of its options is made, and a hidden input keeps whatever it was last + * set to. The tables hold both part sets, but a size holds one of its own set's, the only ones its studio offers, so it + * stands for one of those. + */ +export function resolve(entries is map, value) +{ + if (entries[value] != undefined) + { + return value; + } + var only; + for (var entry in entries) + { + if (value is FastenerSize && FASTENER_SIZES[entry.key].metric != FASTENER_SIZES[value].metric) + { + continue; + } + if (only != undefined) + { + return undefined; + } + only = entry.key; + } + return only; +} + +// The XZ plane, with the sketch's X along the radius and its Y along the axis +const PROFILE_PLANE = plane(WORLD_ORIGIN, -Y_DIRECTION, X_DIRECTION); + + +function isNylockType(nutType is NutType) returns boolean +{ + return nutType == NutType.NYLOCK || nutType == NutType.THIN_NYLOCK; +} + +/** + * A nut's profile, which it's the revolve of within its hex or square: up its bore from its bearing face, and back down + * its chamfers, both of a hex's ends, a square's top only. A nylock's runs from its dome's top (see `nylockDome`) down + * into its insert's recess and back to the dome's start, which the dome closes; any other's closes on itself. + */ +export function nutProfile(size is map, nut is map, nutType is NutType) returns array +{ + const zero = 0 * meter; + const bore = size.tapDrillDiameter / 2; + const flat = nut.acrossFlats / 2; + const isSquare = nutType == NutType.SQUARE; + const isNylock = isNylockType(nutType); + // Past the corners, where a chamfer's line leaves the nut + const outer = 1.05 * flat * (isSquare ? sqrt(2) : 2 / sqrt(3)); + const rise = (outer - flat) * tan(isNylock ? NYLOCK_CHAMFER_ANGLE : NUT_CHAMFER_ANGLE); + const bottom = isSquare ? [vector(bore, zero), vector(outer, zero)] : [vector(bore, zero), vector(flat, zero), vector(outer, rise)]; + if (!isNylock) + { + return concatenateArrays([ + bottom, + [vector(outer, nut.height - rise), vector(flat, nut.height), vector(bore, nut.height), vector(bore, zero)] + ]); + } + const top = nut.height - NYLON_RECESS; + return concatenateArrays([ + [vector(flat - (nut.height - nut.hexHeight), nut.height), vector(nut.insertDiameter / 2, nut.height), + vector(nut.insertDiameter / 2, top), vector(bore, top)], + bottom, + [vector(outer, nut.hexHeight - rise), vector(flat, nut.hexHeight)] + ]); +} + +/** + * A nylock's dome, from the top of its hex across its flats up to its flat top: a quarter circle as tall as the nut is + * above its hex. + */ +export function nylockDome(nut is map) returns map +{ + const flat = nut.acrossFlats / 2; + const radius = nut.height - nut.hexHeight; + const center = vector(flat - radius, nut.hexHeight); + return { + "start" : vector(flat, nut.hexHeight), + "mid" : center + radius * vector(cos(45 * degree), sin(45 * degree)), + "end" : vector(flat - radius, nut.height) + }; +} + +/** + * A mate connector at the origin, pointing up: fastened to an edge, the part sits on it. + */ +function addSeatMateConnector(context is Context, id is Id, owner is Query) +{ + opMateConnector(context, id, { + "coordSystem" : coordSystem(WORLD_ORIGIN, X_DIRECTION, Z_DIRECTION), + "owner" : owner + }); +} + +/** + * How far a flat head's cone goes into its countersink: from its diameter down to the shank's at its countersink angle. + */ +export function flatHeadHeight(size is map, head is map) returns ValueWithUnits +{ + return (head.headDiameter - size.majorDiameter) / 2 / tan(head.countersinkAngle / 2); +} + +/** + * How far a flat head goes below its top: its band, then its cone. + */ +export function flatHeadDepth(size is map, head is map) returns ValueWithUnits +{ + return FLAT_HEAD_BAND * head.headDiameter + flatHeadHeight(size, head); +} + +export function tipChamfer(size is map) returns ValueWithUnits +{ + return TIP_CHAMFER * size.majorDiameter; +} + +export function socketDepth(size is map, head is map, headType is ScrewHead) returns ValueWithUnits +{ + if (headType == ScrewHead.FLAT) + { + return 0.46 * flatHeadHeight(size, head); + } + return (headType == ScrewHead.BUTTON ? 0.45 : 0.5) * head.headHeight; +} + +/** + * How far a screw's threads run up from its tip: to its head, but for a standard socket head's, which stop 2D plus its + * size's allowance up (1/2 in by ASTM A574, 12 mm by ISO 4762). + */ +export function threadLength(size is map, head is map, headType is ScrewHead, length is ValueWithUnits, fullThread is boolean) returns ValueWithUnits +{ + const shank = headType == ScrewHead.FLAT ? length - flatHeadDepth(size, head) : length; + if (headType != ScrewHead.SOCKET || fullThread) + { + return shank; + } + return min(shank, 2 * size.majorDiameter + size.threadAllowance); +} + +/** + * A screw's profile in `PROFILE_PLANE`: (radius, height) points around it, through its axis. A socket or flat head's + * closes on itself; a button head's runs from the top of its side to the edge of its flat top, which `buttonDome` + * joins. + */ +export function screwProfile(size is map, head is map, headType is ScrewHead, length is ValueWithUnits) returns array +{ + const radius = size.majorDiameter / 2; + const headRadius = head.headDiameter / 2; + const tip = tipChamfer(size); + const zero = 0 * meter; + const shank = [vector(radius, -length + tip), vector(radius - tip, -length), vector(zero, -length)]; + if (isHexHead(headType)) + { + // Its head is extruded onto the top of its shank + return concatenateArrays([[vector(zero, zero), vector(radius, zero)], shank, [vector(zero, zero)]]); + } + if (headType == ScrewHead.FLAT) + { + // A flat head's length is from its top, which sits flush with the part + const band = FLAT_HEAD_BAND * head.headDiameter; + return concatenateArrays([ + [vector(zero, zero), vector(headRadius, zero), vector(headRadius, -band), vector(radius, -flatHeadDepth(size, head))], + shank, + [vector(zero, zero)] + ]); + } + const underHead = [vector(headRadius, zero), vector(radius, zero)]; + if (headType == ScrewHead.BUTTON) + { + return concatenateArrays([ + [vector(headRadius, buttonSideHeight(head))], + underHead, + shank, + [vector(zero, head.headHeight), vector(buttonTopRadius(head), head.headHeight)] + ]); + } + const chamfer = SOCKET_HEAD_CHAMFER * head.headDiameter; + return concatenateArrays([ + [vector(zero, head.headHeight), vector(headRadius - chamfer, head.headHeight), vector(headRadius, head.headHeight - chamfer)], + underHead, + shank, + [vector(zero, head.headHeight)] + ]); +} + +function buttonSideHeight(head is map) returns ValueWithUnits +{ + return BUTTON_HEAD_SIDE * head.headDiameter; +} + +function buttonTopRadius(head is map) returns ValueWithUnits +{ + return BUTTON_HEAD_TOP * head.socketSize / 2; +} + +/** + * A button head's dome: an arc centered on the axis, from the top of the head's side to the edge of its flat top. + */ +export function buttonDome(head is map) returns map +{ + const side = vector(head.headDiameter / 2, buttonSideHeight(head)); + const top = vector(buttonTopRadius(head), head.headHeight); + // The center's height, equally far from both + const height = (squaredNorm(top) - squaredNorm(side)) / (2 * (top[1] - side[1])); + const center = vector(0 * meter, height); + const radius = norm(side - center); + const middle = center + radius * normalize(normalize(side - center) + normalize(top - center)); + return { "start" : side, "mid" : middle, "end" : top }; +} + +/** + * Threads a screw's shank from the edge above its tip chamfer, as std's External thread does: its hole attribute on the + * shank and that edge, and on the chamfer as its chamfer, and a cosmetic thread on the shank. + */ +function addScrewThread(context is Context, id is Id, screw is Query, size is map, head is map, headType is ScrewHead, + length is ValueWithUnits, fullThread is boolean) +{ + const radius = size.majorDiameter / 2; + const tip = tipChamfer(size); + const start = vector(0 * meter, 0 * meter, -length + tip); + const shaft = threadLength(size, head, headType, length, true) - tip; + const threaded = threadLength(size, head, headType, length, fullThread) - tip; + const faces = qOwnedByBody(screw, EntityType.FACE); + const shank = faces->qGeometry(GeometryType.CYLINDER)->qContainsPoint(start + vector(radius, 0 * meter, shaft / 2)); + const edge = qOwnedByBody(screw, EntityType.EDGE)->qGeometry(GeometryType.CIRCLE)->qContainsPoint(start + vector(radius, 0 * meter, 0 * meter)); + const chamfer = faces->qGeometry(GeometryType.CONE)->qContainsPoint(start + vector(radius - tip / 2, 0 * meter, -tip / 2)); + + // Up the shank, from the tip + const cylinder = evSurfaceDefinition(context, { "face" : shank }); + const aligned = dot(cylinder.coordSystem.zAxis, Z_DIRECTION) > 0; + const isBlind = threaded < shaft - TOLERANCE.zeroLength * meter; + + var attribute = makeHoleAttribute(true, toAttributeId(id), HoleStyle.SIMPLE); + attribute.isTappedHole = true; + // fs check: ignore keyword-key (std's hole attributes name it "type") + attribute.sectionFace = { "type" : HoleSectionFaceType.THROUGH_FACE }; + attribute.isExternalThread = true; + attribute.minorDiameter = { "value" : size.minorDiameter }; + attribute.majorDiameter = { "value" : size.majorDiameter }; + attribute.tappedDepth = { "value" : threaded }; + attribute.holeDepth = { "value" : shaft }; + attribute.holeDiameter = { "value" : size.majorDiameter }; + attribute.endType = isBlind ? HoleEndStyle.BLIND : HoleEndStyle.THROUGH; + attribute.tapSize = size.name; + attribute.isTappedThrough = !isBlind; + attribute.isTaperedPipeTapHole = false; + attribute.isStraightPipeTapHole = false; + attribute.tapClearance = 0.0; + attribute.cylinderAlignedWithThreadDirection = aligned; + attribute.threadFaceModificationType = ThreadFaceModificationType.NONE; + setAttribute(context, { "entities" : qUnion([shank, edge]), "attribute" : attribute }); + // fs check: ignore keyword-key (std's hole attributes name it "type") + attribute.sectionFace = { "type" : HoleSectionFaceType.EXTERNAL_THREAD_CHAMFER_FACE }; + setAttribute(context, { "entities" : chamfer, "attribute" : attribute }); + + addCosmeticThreadAttribute(context, shank, createCosmeticThreadDataFromEntity( + coordSystem(start, aligned ? cylinder.coordSystem.xAxis : -cylinder.coordSystem.xAxis, Z_DIRECTION), + threaded / meter, size.threadPitch / meter)); +} + +/** + * Taps a nut's bore through, as std's Hole feature does: its hole attribute, and a cosmetic thread up from its bearing + * face. + */ +function addNutThread(context is Context, id is Id, nut is Query, size is map, height is ValueWithUnits) +{ + const bore = qOwnedByBody(nut, EntityType.FACE)->qGeometry(GeometryType.CYLINDER) + ->qContainsPoint(vector(size.tapDrillDiameter / 2, 0 * meter, height / 2)); + + var attribute = makeHoleAttribute(true, toAttributeId(id), HoleStyle.SIMPLE); + attribute.endType = HoleEndStyle.THROUGH; + // fs check: ignore keyword-key (std's hole attributes name it "type") + attribute.sectionFace = { "type" : HoleSectionFaceType.THROUGH_FACE }; + attribute.holeDiameter = size.tapDrillDiameter; + attribute.majorDiameter = size.majorDiameter; + attribute.isTappedHole = true; + attribute.isTaperedPipeTapHole = false; + attribute.isStraightPipeTapHole = false; + attribute.tappedAngle = 0.0; + attribute.tapSize = size.name; + // As std's Hole sets a hole tapped through + attribute.isTappedThrough = true; + attribute.tappedDepth = 0 * meter; + attribute.threadPitch = size.threadPitch; + setAttribute(context, { "entities" : bore, "attribute" : attribute }); + + addCosmeticThreadAttribute(context, bore, createCosmeticThreadDataFromEntity( + coordSystem(WORLD_ORIGIN, X_DIRECTION, Z_DIRECTION), height / meter, size.threadPitch / meter)); +} + +/** + * Sets a part's properties from its table entry (see fastenerTables.py's `Record`): its name, its vendor and part + * number, and a link to buy it where it has them, and its material and its finish's appearance. FRCDesignApp indexes + * the same records, so these are the only properties set. + */ +function setFastenerProperties(context is Context, body is Query, entry is map) +{ + setProperty(context, { "entities" : body, "propertyType" : PropertyType.NAME, "value" : entry.name }); + if (entry.vendor != undefined) + { + setProperty(context, { "entities" : body, "propertyType" : PropertyType.VENDOR, "value" : entry.vendor }); + } + if (entry.partNumber != undefined) + { + setProperty(context, { "entities" : body, "propertyType" : PropertyType.PART_NUMBER, "value" : entry.partNumber }); + } + if (entry.url != undefined) + { + setProperty(context, { "entities" : body, "propertyType" : PropertyType.DESCRIPTION, "value" : entry.url }); + } + setProperty(context, { "entities" : body, "propertyType" : PropertyType.MATERIAL, "value" : entry.material }); + setProperty(context, { "entities" : body, "propertyType" : PropertyType.APPEARANCE, "value" : entry.appearance }); +} diff --git a/featurescripts/fasteners/fasteners.gen.json b/featurescripts/fasteners/fasteners.gen.json new file mode 100644 index 00000000..c61e94b5 --- /dev/null +++ b/featurescripts/fasteners/fasteners.gen.json @@ -0,0 +1,30927 @@ +{ + "source": "featurescripts/fasteners/fastenerTables.py", + "studios": { + "screw": { + "feature": "fastenerScrew", + "mateConnector": "mateConnector", + "configuration": { + "btType": "BTConfigurationUpdateCall-2933", + "configurationParameters": [ + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "vendor", + "parameterName": "Vendor", + "enumName": "vendor_conf", + "namespace": "", + "defaultValue": "GENERIC", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "GENERIC", + "optionName": "Generic" + }, + { + "btType": "BTMEnumOption-592", + "option": "MCMASTER", + "optionName": "McMaster-Carr" + }, + { + "btType": "BTMEnumOption-592", + "option": "REV", + "optionName": "REV" + }, + { + "btType": "BTMEnumOption-592", + "option": "WCP", + "optionName": "WCP" + }, + { + "btType": "BTMEnumOption-592", + "option": "ANDYMARK", + "optionName": "AndyMark" + } + ] + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "size", + "parameterName": "Size", + "enumName": "size_conf", + "namespace": "", + "defaultValue": "NO_10_32", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "NO_4_40", + "optionName": "#4-40" + }, + { + "btType": "BTMEnumOption-592", + "option": "NO_6_32", + "optionName": "#6-32" + }, + { + "btType": "BTMEnumOption-592", + "option": "NO_8_32", + "optionName": "#8-32" + }, + { + "btType": "BTMEnumOption-592", + "option": "NO_10_32", + "optionName": "#10-32" + }, + { + "btType": "BTMEnumOption-592", + "option": "QUARTER_20", + "optionName": "1/4-20" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "NO_4_40", + "NO_6_32", + "QUARTER_20" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "NO_8_32", + "NO_10_32" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "WCP", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "head", + "parameterName": "Head", + "enumName": "head_conf", + "namespace": "", + "defaultValue": "BUTTON", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "SOCKET", + "optionName": "Socket head" + }, + { + "btType": "BTMEnumOption-592", + "option": "BUTTON", + "optionName": "Button head" + }, + { + "btType": "BTMEnumOption-592", + "option": "FLAT", + "optionName": "Flat head" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "SOCKET", + "BUTTON", + "FLAT" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "SOCKET", + "BUTTON", + "FLAT" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "REV", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "SOCKET", + "BUTTON" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "WCP", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "SOCKET", + "FLAT" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "BUTTON" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "finish", + "parameterName": "Finish", + "enumName": "finish_conf", + "namespace": "", + "defaultValue": "BLACK", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "BLACK", + "optionName": "Black" + }, + { + "btType": "BTMEnumOption-592", + "option": "ZINC_PLATED", + "optionName": "Zinc plated" + }, + { + "btType": "BTMEnumOption-592", + "option": "ALUMINUM", + "optionName": "Aluminum" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "BLACK", + "ZINC_PLATED" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "BLACK", + "ZINC_PLATED" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "REV", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "BLACK", + "ALUMINUM" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "WCP", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "BLACK", + "ZINC_PLATED" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "length", + "parameterName": "Length", + "enumName": "length_conf", + "namespace": "", + "defaultValue": "IN_0_375", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "IN_0_09375", + "optionName": "3/32 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_125", + "optionName": "1/8 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_15625", + "optionName": "5/32 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_1875", + "optionName": "3/16 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_25", + "optionName": "1/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_3125", + "optionName": "5/16 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_375", + "optionName": "3/8 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_4375", + "optionName": "7/16 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_5", + "optionName": "1/2 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_5625", + "optionName": "9/16 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_625", + "optionName": "5/8 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_6875", + "optionName": "11/16 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_75", + "optionName": "3/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_0_875", + "optionName": "7/8 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_1", + "optionName": "1 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_1_125", + "optionName": "1-1/8 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_1_25", + "optionName": "1-1/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_1_375", + "optionName": "1-3/8 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_1_5", + "optionName": "1-1/2 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_1_625", + "optionName": "1-5/8 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_1_75", + "optionName": "1-3/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_1_875", + "optionName": "1-7/8 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_2", + "optionName": "2 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_2_125", + "optionName": "2-1/8 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_2_25", + "optionName": "2-1/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_2_375", + "optionName": "2-3/8 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_2_5", + "optionName": "2-1/2 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_2_625", + "optionName": "2-5/8 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_2_75", + "optionName": "2-3/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_3", + "optionName": "3 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_3_25", + "optionName": "3-1/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_3_5", + "optionName": "3-1/2 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_3_75", + "optionName": "3-3/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_4", + "optionName": "4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_4_25", + "optionName": "4-1/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_4_5", + "optionName": "4-1/2 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_4_75", + "optionName": "4-3/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_5", + "optionName": "5 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_5_25", + "optionName": "5-1/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_5_5", + "optionName": "5-1/2 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_5_75", + "optionName": "5-3/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_6", + "optionName": "6 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_6_25", + "optionName": "6-1/4 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_6_5", + "optionName": "6-1/2 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_7", + "optionName": "7 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_7_5", + "optionName": "7-1/2 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_8", + "optionName": "8 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_8_5", + "optionName": "8-1/2 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_9", + "optionName": "9 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "IN_10", + "optionName": "10 in" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_09375", + "IN_3_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_09375", + "IN_2_75", + "IN_3_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_125", + "IN_4_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_15625" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_15625" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_15625", + "IN_6" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_15625" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_15625" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_15625", + "IN_6" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_1875", + "IN_0_3125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_1875" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_1875" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_1875" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_1875", + "IN_2_25", + "IN_2_75", + "IN_3", + "IN_3_5", + "IN_4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_1875", + "IN_0_3125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_1875" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_25", + "IN_0_375", + "IN_0_4375", + "IN_0_5", + "IN_0_5625", + "IN_0_625", + "IN_0_75", + "IN_0_875", + "IN_1", + "IN_1_25" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_25", + "IN_0_3125", + "IN_0_375", + "IN_0_5", + "IN_0_625", + "IN_0_75", + "IN_1", + "IN_1_25", + "IN_1_5", + "IN_1_625", + "IN_1_75", + "IN_2", + "IN_2_25", + "IN_2_5", + "IN_2_75", + "IN_3" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "REV", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_25", + "IN_0_375", + "IN_0_5", + "IN_0_75", + "IN_0_875", + "IN_1", + "IN_1_25", + "IN_1_5", + "IN_1_75", + "IN_2", + "IN_2_25", + "IN_2_5", + "IN_2_75", + "IN_3", + "IN_4_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "WCP", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_25" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_25" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_25", + "IN_0_375", + "IN_0_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ALUMINUM", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "WCP", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_25", + "IN_0_375", + "IN_0_4375", + "IN_0_5", + "IN_0_5625", + "IN_0_625", + "IN_0_75", + "IN_0_875", + "IN_1", + "IN_1_25" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_25", + "IN_0_3125", + "IN_0_375", + "IN_0_5", + "IN_0_625", + "IN_0_75", + "IN_1", + "IN_1_25", + "IN_1_5", + "IN_1_75", + "IN_2", + "IN_2_25", + "IN_2_5", + "IN_2_75", + "IN_3", + "IN_3_5", + "IN_4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "REV", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_25", + "IN_0_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "WCP", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_25", + "IN_0_375", + "IN_0_5", + "IN_1", + "IN_1_5", + "IN_1_75", + "IN_2", + "IN_2_5", + "IN_3", + "IN_4", + "IN_4_5", + "IN_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "WCP", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_25", + "IN_0_875", + "IN_1_125", + "IN_1_375", + "IN_2_25", + "IN_2_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_3125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_3125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_3125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_3125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_3125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_375", + "IN_0_5", + "IN_0_625", + "IN_1", + "IN_1_25", + "IN_1_5", + "IN_1_75", + "IN_2", + "IN_2_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_375", + "IN_0_5", + "IN_0_625", + "IN_0_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_375", + "IN_0_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "REV", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_375", + "IN_0_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_375", + "IN_1_25", + "IN_1_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_4375" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_4375", + "IN_1_625", + "IN_3_25", + "IN_3_75", + "IN_4_5", + "IN_5", + "IN_5_5", + "IN_6" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_5", + "IN_0_625", + "IN_0_75", + "IN_1", + "IN_1_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_5625" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_625", + "IN_1", + "IN_1_5", + "IN_1_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_6875", + "IN_3_75", + "IN_4_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_6875", + "IN_3_75", + "IN_4_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_875", + "IN_1_25", + "IN_1_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_0_875", + "IN_1", + "IN_1_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1", + "IN_2" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_125", + "IN_1_375", + "IN_1_75", + "IN_2", + "IN_2_25", + "IN_2_5", + "IN_3" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_125", + "IN_2_25", + "IN_2_75", + "IN_3_5", + "IN_4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_125", + "IN_1_375", + "IN_1_75", + "IN_2", + "IN_2_25", + "IN_2_5", + "IN_3" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_25" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_25", + "IN_2" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_375", + "IN_1_625", + "IN_2_25", + "IN_2_5", + "IN_3" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_375" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_375", + "IN_1_625", + "IN_2_25", + "IN_2_5", + "IN_3" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_5", + "IN_1_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_5", + "IN_1_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_625" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_625" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_625" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_625" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_75", + "IN_2_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_75", + "IN_2_5", + "IN_3" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_875" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_875" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_1_875" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_2" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_2" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_2" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_2", + "IN_2_125" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_2" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_2_375", + "IN_2_625", + "IN_4_25", + "IN_5_25", + "IN_5_75", + "IN_6_25", + "IN_7_5", + "IN_8", + "IN_8_5", + "IN_9", + "IN_10" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_2_375", + "IN_2_625", + "IN_4_25", + "IN_5_25", + "IN_5_75", + "IN_6_25", + "IN_7_5", + "IN_8", + "IN_8_5", + "IN_9", + "IN_10" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_2_5", + "IN_3", + "IN_3_25" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_2_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_2_75", + "IN_3_25", + "IN_3_5", + "IN_4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_2_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_2_75", + "IN_3_25", + "IN_3_5", + "IN_4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_3_25" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_3_25", + "IN_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_3_5", + "IN_4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_3_5", + "IN_4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_3_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "WCP", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_5", + "IN_6" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_5", + "IN_6" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_5_5", + "IN_6_5", + "IN_7" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "IN_5_5", + "IN_6_5", + "IN_7" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "fullyThreaded", + "parameterName": "Fully threaded", + "enumName": "fullyThreaded_conf", + "namespace": "", + "defaultValue": "false", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "false", + "optionName": "No" + }, + { + "btType": "BTMEnumOption-592", + "option": "true", + "optionName": "Yes" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "false", + "true" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_1", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "false", + "true" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_1_25", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "false", + "true" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_1", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "false", + "true" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_1_5", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_1_75", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_2", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_2_25", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_2_5", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_2_75", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_3", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "false", + "true" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_1_5", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_1_75", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_2", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_2_25", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_2_5", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_2_75", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "IN_3_5", + "inArray": false + } + ] + } + ] + } + } + ] + } + } + ] + }, + "location": null, + "records": [ + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_09375" + }, + "name": "#4-40 x 3/32 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_125" + }, + "name": "#4-40 x 1/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_15625" + }, + "name": "#4-40 x 5/32 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_1875" + }, + "name": "#4-40 x 3/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_25" + }, + "name": "#4-40 x 1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_3125" + }, + "name": "#4-40 x 5/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_375" + }, + "name": "#4-40 x 3/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_4375" + }, + "name": "#4-40 x 7/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_5" + }, + "name": "#4-40 x 1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_5625" + }, + "name": "#4-40 x 9/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_625" + }, + "name": "#4-40 x 5/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_75" + }, + "name": "#4-40 x 3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_875" + }, + "name": "#4-40 x 7/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_1" + }, + "name": "#4-40 x 1 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_1_125" + }, + "name": "#4-40 x 1-1/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_1_25" + }, + "name": "#4-40 x 1-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_1_375" + }, + "name": "#4-40 x 1-3/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_1_5" + }, + "name": "#4-40 x 1-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_1_625" + }, + "name": "#4-40 x 1-5/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_1_75" + }, + "name": "#4-40 x 1-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_2" + }, + "name": "#4-40 x 2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_2_25" + }, + "name": "#4-40 x 2-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_2_5" + }, + "name": "#4-40 x 2-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_2_75" + }, + "name": "#4-40 x 2-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_3" + }, + "name": "#4-40 x 3 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_3_5" + }, + "name": "#4-40 x 3-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_4" + }, + "name": "#4-40 x 4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_0_125" + }, + "name": "#4-40 x 1/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_0_1875" + }, + "name": "#4-40 x 3/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_0_25" + }, + "name": "#4-40 x 1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_0_3125" + }, + "name": "#4-40 x 5/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_0_375" + }, + "name": "#4-40 x 3/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_0_4375" + }, + "name": "#4-40 x 7/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_0_5" + }, + "name": "#4-40 x 1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_0_5625" + }, + "name": "#4-40 x 9/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_0_625" + }, + "name": "#4-40 x 5/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_0_75" + }, + "name": "#4-40 x 3/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_0_875" + }, + "name": "#4-40 x 7/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_1" + }, + "name": "#4-40 x 1 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_1_25" + }, + "name": "#4-40 x 1-1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_1_5" + }, + "name": "#4-40 x 1-1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "length": "IN_2" + }, + "name": "#4-40 x 2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_0_125" + }, + "name": "#4-40 x 1/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_0_15625" + }, + "name": "#4-40 x 5/32 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_0_1875" + }, + "name": "#4-40 x 3/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_0_25" + }, + "name": "#4-40 x 1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_0_3125" + }, + "name": "#4-40 x 5/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_0_375" + }, + "name": "#4-40 x 3/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_0_4375" + }, + "name": "#4-40 x 7/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_0_5" + }, + "name": "#4-40 x 1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_0_5625" + }, + "name": "#4-40 x 9/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_0_625" + }, + "name": "#4-40 x 5/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_0_75" + }, + "name": "#4-40 x 3/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_0_875" + }, + "name": "#4-40 x 7/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_1" + }, + "name": "#4-40 x 1 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_1_125" + }, + "name": "#4-40 x 1-1/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_1_25" + }, + "name": "#4-40 x 1-1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "length": "IN_1_5" + }, + "name": "#4-40 x 1-1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_09375" + }, + "name": "#6-32 x 3/32 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_125" + }, + "name": "#6-32 x 1/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_15625" + }, + "name": "#6-32 x 5/32 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_1875" + }, + "name": "#6-32 x 3/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_25" + }, + "name": "#6-32 x 1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_3125" + }, + "name": "#6-32 x 5/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_375" + }, + "name": "#6-32 x 3/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_4375" + }, + "name": "#6-32 x 7/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_5" + }, + "name": "#6-32 x 1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_5625" + }, + "name": "#6-32 x 9/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_625" + }, + "name": "#6-32 x 5/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_75" + }, + "name": "#6-32 x 3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_0_875" + }, + "name": "#6-32 x 7/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_1" + }, + "name": "#6-32 x 1 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_1_125" + }, + "name": "#6-32 x 1-1/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_1_25" + }, + "name": "#6-32 x 1-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_1_375" + }, + "name": "#6-32 x 1-3/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_1_5" + }, + "name": "#6-32 x 1-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_1_625" + }, + "name": "#6-32 x 1-5/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_1_75" + }, + "name": "#6-32 x 1-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_1_875" + }, + "name": "#6-32 x 1-7/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_2" + }, + "name": "#6-32 x 2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_2_125" + }, + "name": "#6-32 x 2-1/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_2_25" + }, + "name": "#6-32 x 2-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_2_5" + }, + "name": "#6-32 x 2-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_2_75" + }, + "name": "#6-32 x 2-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_3" + }, + "name": "#6-32 x 3 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "length": "IN_3_5" + }, + "name": "#6-32 x 3-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_0_125" + }, + "name": "#6-32 x 1/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_0_1875" + }, + "name": "#6-32 x 3/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_0_25" + }, + "name": "#6-32 x 1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_0_3125" + }, + "name": "#6-32 x 5/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_0_375" + }, + "name": "#6-32 x 3/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_0_4375" + }, + "name": "#6-32 x 7/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_0_5" + }, + "name": "#6-32 x 1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_0_5625" + }, + "name": "#6-32 x 9/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_0_625" + }, + "name": "#6-32 x 5/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_0_75" + }, + "name": "#6-32 x 3/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_0_875" + }, + "name": "#6-32 x 7/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_1" + }, + "name": "#6-32 x 1 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_1_125" + }, + "name": "#6-32 x 1-1/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "length": "IN_1_25" + }, + "name": "#6-32 x 1-1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_0_125" + }, + "name": "#6-32 x 1/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_0_15625" + }, + "name": "#6-32 x 5/32 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_0_1875" + }, + "name": "#6-32 x 3/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_0_25" + }, + "name": "#6-32 x 1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_0_3125" + }, + "name": "#6-32 x 5/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_0_375" + }, + "name": "#6-32 x 3/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_0_4375" + }, + "name": "#6-32 x 7/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_0_5" + }, + "name": "#6-32 x 1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_0_5625" + }, + "name": "#6-32 x 9/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_0_625" + }, + "name": "#6-32 x 5/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_0_75" + }, + "name": "#6-32 x 3/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_0_875" + }, + "name": "#6-32 x 7/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_1" + }, + "name": "#6-32 x 1 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_1_25" + }, + "name": "#6-32 x 1-1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_1_5" + }, + "name": "#6-32 x 1-1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "length": "IN_1_75" + }, + "name": "#6-32 x 1-3/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_09375" + }, + "name": "#8-32 x 3/32 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_125" + }, + "name": "#8-32 x 1/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_15625" + }, + "name": "#8-32 x 5/32 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_1875" + }, + "name": "#8-32 x 3/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_25" + }, + "name": "#8-32 x 1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_3125" + }, + "name": "#8-32 x 5/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_375" + }, + "name": "#8-32 x 3/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_4375" + }, + "name": "#8-32 x 7/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_5" + }, + "name": "#8-32 x 1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_5625" + }, + "name": "#8-32 x 9/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_625" + }, + "name": "#8-32 x 5/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_6875" + }, + "name": "#8-32 x 11/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_75" + }, + "name": "#8-32 x 3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_0_875" + }, + "name": "#8-32 x 7/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_1" + }, + "name": "#8-32 x 1 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_1_125" + }, + "name": "#8-32 x 1-1/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_1_25" + }, + "name": "#8-32 x 1-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_1_375" + }, + "name": "#8-32 x 1-3/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_1_5" + }, + "name": "#8-32 x 1-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_1_625" + }, + "name": "#8-32 x 1-5/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_1_75" + }, + "name": "#8-32 x 1-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_1_875" + }, + "name": "#8-32 x 1-7/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_2" + }, + "name": "#8-32 x 2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_2_25" + }, + "name": "#8-32 x 2-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_2_5" + }, + "name": "#8-32 x 2-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_2_75" + }, + "name": "#8-32 x 2-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_3" + }, + "name": "#8-32 x 3 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_3_25" + }, + "name": "#8-32 x 3-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_3_5" + }, + "name": "#8-32 x 3-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_3_75" + }, + "name": "#8-32 x 3-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_4" + }, + "name": "#8-32 x 4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_4_5" + }, + "name": "#8-32 x 4-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "length": "IN_5" + }, + "name": "#8-32 x 5 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_125" + }, + "name": "#8-32 x 1/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_15625" + }, + "name": "#8-32 x 5/32 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_1875" + }, + "name": "#8-32 x 3/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_25" + }, + "name": "#8-32 x 1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_3125" + }, + "name": "#8-32 x 5/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_375" + }, + "name": "#8-32 x 3/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_4375" + }, + "name": "#8-32 x 7/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_5" + }, + "name": "#8-32 x 1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_5625" + }, + "name": "#8-32 x 9/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_625" + }, + "name": "#8-32 x 5/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_75" + }, + "name": "#8-32 x 3/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_875" + }, + "name": "#8-32 x 7/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_1" + }, + "name": "#8-32 x 1 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_1_125" + }, + "name": "#8-32 x 1-1/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_1_25" + }, + "name": "#8-32 x 1-1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_1_375" + }, + "name": "#8-32 x 1-3/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_1_5" + }, + "name": "#8-32 x 1-1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_1_75" + }, + "name": "#8-32 x 1-3/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_2" + }, + "name": "#8-32 x 2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_2_25" + }, + "name": "#8-32 x 2-1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_2_5" + }, + "name": "#8-32 x 2-1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_3" + }, + "name": "#8-32 x 3 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_0_15625" + }, + "name": "#8-32 x 5/32 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_0_1875" + }, + "name": "#8-32 x 3/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_0_25" + }, + "name": "#8-32 x 1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_0_3125" + }, + "name": "#8-32 x 5/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_0_375" + }, + "name": "#8-32 x 3/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_0_4375" + }, + "name": "#8-32 x 7/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_0_5" + }, + "name": "#8-32 x 1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_0_5625" + }, + "name": "#8-32 x 9/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_0_625" + }, + "name": "#8-32 x 5/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_0_75" + }, + "name": "#8-32 x 3/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_0_875" + }, + "name": "#8-32 x 7/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_1" + }, + "name": "#8-32 x 1 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_1_125" + }, + "name": "#8-32 x 1-1/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_1_25" + }, + "name": "#8-32 x 1-1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_1_375" + }, + "name": "#8-32 x 1-3/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_1_5" + }, + "name": "#8-32 x 1-1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_1_625" + }, + "name": "#8-32 x 1-5/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_1_75" + }, + "name": "#8-32 x 1-3/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_2" + }, + "name": "#8-32 x 2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_2_25" + }, + "name": "#8-32 x 2-1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_2_5" + }, + "name": "#8-32 x 2-1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "length": "IN_3" + }, + "name": "#8-32 x 3 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_15625" + }, + "name": "#10-32 x 5/32 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_1875" + }, + "name": "#10-32 x 3/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_3125" + }, + "name": "#10-32 x 5/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_4375" + }, + "name": "#10-32 x 7/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_5625" + }, + "name": "#10-32 x 9/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_6875" + }, + "name": "#10-32 x 11/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_875" + }, + "name": "#10-32 x 7/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_125" + }, + "name": "#10-32 x 1-1/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_375" + }, + "name": "#10-32 x 1-3/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_625" + }, + "name": "#10-32 x 1-5/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_75" + }, + "name": "#10-32 x 1-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_875" + }, + "name": "#10-32 x 1-7/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_2_25" + }, + "name": "#10-32 x 2-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_2_5" + }, + "name": "#10-32 x 2-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_2_75" + }, + "name": "#10-32 x 2-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_3" + }, + "name": "#10-32 x 3 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_3_25" + }, + "name": "#10-32 x 3-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_3_5" + }, + "name": "#10-32 x 3-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_3_75" + }, + "name": "#10-32 x 3-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_4" + }, + "name": "#10-32 x 4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_4_5" + }, + "name": "#10-32 x 4-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_5" + }, + "name": "#10-32 x 5 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_5_5" + }, + "name": "#10-32 x 5-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_6" + }, + "name": "#10-32 x 6 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_6_5" + }, + "name": "#10-32 x 6-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_7" + }, + "name": "#10-32 x 7 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_125" + }, + "name": "#10-32 x 1/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_1875" + }, + "name": "#10-32 x 3/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_3125" + }, + "name": "#10-32 x 5/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_4375" + }, + "name": "#10-32 x 7/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_5625" + }, + "name": "#10-32 x 9/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_875" + }, + "name": "#10-32 x 7/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_1_125" + }, + "name": "#10-32 x 1-1/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_1_375" + }, + "name": "#10-32 x 1-3/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_1_625" + }, + "name": "#10-32 x 1-5/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_1_75" + }, + "name": "#10-32 x 1-3/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_2_25" + }, + "name": "#10-32 x 2-1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_2_5" + }, + "name": "#10-32 x 2-1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_2_75" + }, + "name": "#10-32 x 2-3/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_3" + }, + "name": "#10-32 x 3 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_4_75" + }, + "name": "#10-32 x 4-3/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_1875" + }, + "name": "#10-32 x 3/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_3125" + }, + "name": "#10-32 x 5/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_4375" + }, + "name": "#10-32 x 7/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_5625" + }, + "name": "#10-32 x 9/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_875" + }, + "name": "#10-32 x 7/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_1_125" + }, + "name": "#10-32 x 1-1/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_1_375" + }, + "name": "#10-32 x 1-3/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_1_625" + }, + "name": "#10-32 x 1-5/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_1_75" + }, + "name": "#10-32 x 1-3/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_2_25" + }, + "name": "#10-32 x 2-1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_2_5" + }, + "name": "#10-32 x 2-1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_3" + }, + "name": "#10-32 x 3 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_3_5" + }, + "name": "#10-32 x 3-1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_4" + }, + "name": "#10-32 x 4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_0_25" + }, + "name": "1/4-20 x 1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_0_3125" + }, + "name": "1/4-20 x 5/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_0_375" + }, + "name": "1/4-20 x 3/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_0_4375" + }, + "name": "1/4-20 x 7/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_0_5" + }, + "name": "1/4-20 x 1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_0_5625" + }, + "name": "1/4-20 x 9/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_0_625" + }, + "name": "1/4-20 x 5/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_0_6875" + }, + "name": "1/4-20 x 11/16 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_0_75" + }, + "name": "1/4-20 x 3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_0_875" + }, + "name": "1/4-20 x 7/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_1" + }, + "name": "1/4-20 x 1 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_1_125" + }, + "name": "1/4-20 x 1-1/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_1_25" + }, + "name": "1/4-20 x 1-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_1_375" + }, + "name": "1/4-20 x 1-3/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_1_5" + }, + "name": "1/4-20 x 1-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_1_625" + }, + "name": "1/4-20 x 1-5/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_1_75" + }, + "name": "1/4-20 x 1-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_1_875" + }, + "name": "1/4-20 x 1-7/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_2" + }, + "name": "1/4-20 x 2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_2_25" + }, + "name": "1/4-20 x 2-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_2_375" + }, + "name": "1/4-20 x 2-3/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_2_5" + }, + "name": "1/4-20 x 2-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_2_625" + }, + "name": "1/4-20 x 2-5/8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_2_75" + }, + "name": "1/4-20 x 2-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_3" + }, + "name": "1/4-20 x 3 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_3_25" + }, + "name": "1/4-20 x 3-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_3_5" + }, + "name": "1/4-20 x 3-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_3_75" + }, + "name": "1/4-20 x 3-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_4" + }, + "name": "1/4-20 x 4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_4_25" + }, + "name": "1/4-20 x 4-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_4_5" + }, + "name": "1/4-20 x 4-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_5" + }, + "name": "1/4-20 x 5 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_5_25" + }, + "name": "1/4-20 x 5-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_5_5" + }, + "name": "1/4-20 x 5-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_5_75" + }, + "name": "1/4-20 x 5-3/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_6" + }, + "name": "1/4-20 x 6 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_6_25" + }, + "name": "1/4-20 x 6-1/4 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_6_5" + }, + "name": "1/4-20 x 6-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_7" + }, + "name": "1/4-20 x 7 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_7_5" + }, + "name": "1/4-20 x 7-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_8" + }, + "name": "1/4-20 x 8 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_8_5" + }, + "name": "1/4-20 x 8-1/2 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_9" + }, + "name": "1/4-20 x 9 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_10" + }, + "name": "1/4-20 x 10 in Socket Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_0_1875" + }, + "name": "1/4-20 x 3/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_0_25" + }, + "name": "1/4-20 x 1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_0_3125" + }, + "name": "1/4-20 x 5/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_0_375" + }, + "name": "1/4-20 x 3/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_0_4375" + }, + "name": "1/4-20 x 7/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_0_5" + }, + "name": "1/4-20 x 1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_0_5625" + }, + "name": "1/4-20 x 9/16 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_0_625" + }, + "name": "1/4-20 x 5/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_0_75" + }, + "name": "1/4-20 x 3/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_0_875" + }, + "name": "1/4-20 x 7/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_1" + }, + "name": "1/4-20 x 1 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_1_125" + }, + "name": "1/4-20 x 1-1/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_1_25" + }, + "name": "1/4-20 x 1-1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_1_375" + }, + "name": "1/4-20 x 1-3/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_1_5" + }, + "name": "1/4-20 x 1-1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_1_625" + }, + "name": "1/4-20 x 1-5/8 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_1_75" + }, + "name": "1/4-20 x 1-3/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_2" + }, + "name": "1/4-20 x 2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_2_25" + }, + "name": "1/4-20 x 2-1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_2_5" + }, + "name": "1/4-20 x 2-1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_2_75" + }, + "name": "1/4-20 x 2-3/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_3" + }, + "name": "1/4-20 x 3 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_3_25" + }, + "name": "1/4-20 x 3-1/4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_3_5" + }, + "name": "1/4-20 x 3-1/2 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "length": "IN_4" + }, + "name": "1/4-20 x 4 in Button Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_0_25" + }, + "name": "1/4-20 x 1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_0_375" + }, + "name": "1/4-20 x 3/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_0_4375" + }, + "name": "1/4-20 x 7/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_0_5" + }, + "name": "1/4-20 x 1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_0_5625" + }, + "name": "1/4-20 x 9/16 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_0_625" + }, + "name": "1/4-20 x 5/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_0_75" + }, + "name": "1/4-20 x 3/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_0_875" + }, + "name": "1/4-20 x 7/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_1" + }, + "name": "1/4-20 x 1 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_1_125" + }, + "name": "1/4-20 x 1-1/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_1_25" + }, + "name": "1/4-20 x 1-1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_1_375" + }, + "name": "1/4-20 x 1-3/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_1_5" + }, + "name": "1/4-20 x 1-1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_1_625" + }, + "name": "1/4-20 x 1-5/8 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_1_75" + }, + "name": "1/4-20 x 1-3/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_2" + }, + "name": "1/4-20 x 2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_2_25" + }, + "name": "1/4-20 x 2-1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_2_5" + }, + "name": "1/4-20 x 2-1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_2_75" + }, + "name": "1/4-20 x 2-3/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_3" + }, + "name": "1/4-20 x 3 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_3_25" + }, + "name": "1/4-20 x 3-1/4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_3_5" + }, + "name": "1/4-20 x 3-1/2 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_4" + }, + "name": "1/4-20 x 4 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_5" + }, + "name": "1/4-20 x 5 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_6" + }, + "name": "1/4-20 x 6 in Flat Head Screw", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_09375" + }, + "name": "#4-40 x 3/32 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A231", + "url": "https://www.mcmaster.com/91251A231/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_125" + }, + "name": "#4-40 x 1/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A018", + "url": "https://www.mcmaster.com/91864A018/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_125" + }, + "name": "#4-40 x 1/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A102", + "url": "https://www.mcmaster.com/90128A102/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_15625" + }, + "name": "#4-40 x 5/32 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A232", + "url": "https://www.mcmaster.com/91251A232/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "#4-40 x 3/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A105", + "url": "https://www.mcmaster.com/91251A105/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_1875" + }, + "name": "#4-40 x 3/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A105", + "url": "https://www.mcmaster.com/90128A105/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#4-40 x 1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A106", + "url": "https://www.mcmaster.com/91251A106/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "#4-40 x 1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A106", + "url": "https://www.mcmaster.com/90128A106/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#4-40 x 5/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A107", + "url": "https://www.mcmaster.com/91251A107/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_3125" + }, + "name": "#4-40 x 5/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A107", + "url": "https://www.mcmaster.com/90128A107/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#4-40 x 3/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A108", + "url": "https://www.mcmaster.com/91251A108/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#4-40 x 3/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A108", + "url": "https://www.mcmaster.com/90128A108/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "#4-40 x 7/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A081", + "url": "https://www.mcmaster.com/91864A081/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_4375" + }, + "name": "#4-40 x 7/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A311", + "url": "https://www.mcmaster.com/90128A311/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#4-40 x 1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A110", + "url": "https://www.mcmaster.com/91251A110/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#4-40 x 1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A110", + "url": "https://www.mcmaster.com/90128A110/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "#4-40 x 9/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A028", + "url": "https://www.mcmaster.com/91864A028/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#4-40 x 5/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A112", + "url": "https://www.mcmaster.com/91251A112/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "#4-40 x 5/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A112", + "url": "https://www.mcmaster.com/90128A112/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#4-40 x 3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A113", + "url": "https://www.mcmaster.com/91251A113/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "#4-40 x 3/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A113", + "url": "https://www.mcmaster.com/90128A113/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#4-40 x 7/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A114", + "url": "https://www.mcmaster.com/91251A114/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_875" + }, + "name": "#4-40 x 7/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A114", + "url": "https://www.mcmaster.com/90128A114/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1", + "fullyThreaded": "false" + }, + "name": "#4-40 x 1 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A115", + "url": "https://www.mcmaster.com/91251A115/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1", + "fullyThreaded": "true" + }, + "name": "#4-40 x 1 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A111", + "url": "https://www.mcmaster.com/90044A111/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1" + }, + "name": "#4-40 x 1 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A115", + "url": "https://www.mcmaster.com/90128A115/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "#4-40 x 1-1/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A029", + "url": "https://www.mcmaster.com/91864A029/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#4-40 x 1-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A078", + "url": "https://www.mcmaster.com/91251A078/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_25" + }, + "name": "#4-40 x 1-1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A119", + "url": "https://www.mcmaster.com/90128A119/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_375" + }, + "name": "#4-40 x 1-3/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A210", + "url": "https://www.mcmaster.com/91251A210/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "#4-40 x 1-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A149", + "url": "https://www.mcmaster.com/91251A149/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_5" + }, + "name": "#4-40 x 1-1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A123", + "url": "https://www.mcmaster.com/90128A123/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_625" + }, + "name": "#4-40 x 1-5/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A233", + "url": "https://www.mcmaster.com/91251A233/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "#4-40 x 1-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A160", + "url": "https://www.mcmaster.com/91251A160/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "#4-40 x 2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A162", + "url": "https://www.mcmaster.com/91251A162/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_2" + }, + "name": "#4-40 x 2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A103", + "url": "https://www.mcmaster.com/90128A103/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_25" + }, + "name": "#4-40 x 2-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A211", + "url": "https://www.mcmaster.com/91251A211/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_5" + }, + "name": "#4-40 x 2-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A834", + "url": "https://www.mcmaster.com/91251A834/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_75" + }, + "name": "#4-40 x 2-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A513", + "url": "https://www.mcmaster.com/91251A513/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3" + }, + "name": "#4-40 x 3 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A212", + "url": "https://www.mcmaster.com/91251A212/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3_5" + }, + "name": "#4-40 x 3-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A291", + "url": "https://www.mcmaster.com/90044A291/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_4" + }, + "name": "#4-40 x 4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A292", + "url": "https://www.mcmaster.com/90044A292/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_125" + }, + "name": "#4-40 x 1/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A103", + "url": "https://www.mcmaster.com/91255A103/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_125" + }, + "name": "#4-40 x 1/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A253", + "url": "https://www.mcmaster.com/91306A253/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "#4-40 x 3/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A105", + "url": "https://www.mcmaster.com/91255A105/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_1875" + }, + "name": "#4-40 x 3/16 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A711", + "url": "https://www.mcmaster.com/91306A711/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#4-40 x 1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A106", + "url": "https://www.mcmaster.com/91255A106/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "#4-40 x 1/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A311", + "url": "https://www.mcmaster.com/91306A311/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#4-40 x 5/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A107", + "url": "https://www.mcmaster.com/91255A107/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#4-40 x 3/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A108", + "url": "https://www.mcmaster.com/91255A108/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#4-40 x 3/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A315", + "url": "https://www.mcmaster.com/91306A315/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "#4-40 x 7/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A021", + "url": "https://www.mcmaster.com/91255A021/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_4375" + }, + "name": "#4-40 x 7/16 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#4-40 x 1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A110", + "url": "https://www.mcmaster.com/91255A110/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#4-40 x 1/2 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A318", + "url": "https://www.mcmaster.com/91306A318/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "#4-40 x 9/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A022", + "url": "https://www.mcmaster.com/91255A022/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#4-40 x 5/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A112", + "url": "https://www.mcmaster.com/91255A112/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "#4-40 x 5/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A254", + "url": "https://www.mcmaster.com/91306A254/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#4-40 x 3/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A113", + "url": "https://www.mcmaster.com/91255A113/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "#4-40 x 3/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A255", + "url": "https://www.mcmaster.com/91306A255/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#4-40 x 7/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A115", + "url": "https://www.mcmaster.com/91255A115/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "#4-40 x 1 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A116", + "url": "https://www.mcmaster.com/91255A116/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#4-40 x 1-1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A117", + "url": "https://www.mcmaster.com/91255A117/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "#4-40 x 1-1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A023", + "url": "https://www.mcmaster.com/91255A023/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "#4-40 x 2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A118", + "url": "https://www.mcmaster.com/91255A118/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_125" + }, + "name": "#4-40 x 1/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_15625" + }, + "name": "#4-40 x 5/32 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "#4-40 x 3/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A375", + "url": "https://www.mcmaster.com/91263A375/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_1875" + }, + "name": "#4-40 x 3/16 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A375", + "url": "https://www.mcmaster.com/91263A375/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#4-40 x 1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A376", + "url": "https://www.mcmaster.com/91263A376/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "#4-40 x 1/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A376", + "url": "https://www.mcmaster.com/91263A376/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#4-40 x 5/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A136", + "url": "https://www.mcmaster.com/91263A136/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_3125" + }, + "name": "#4-40 x 5/16 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A136", + "url": "https://www.mcmaster.com/91263A136/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#4-40 x 3/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A501", + "url": "https://www.mcmaster.com/91263A501/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#4-40 x 3/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A501", + "url": "https://www.mcmaster.com/91263A501/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "#4-40 x 7/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#4-40 x 1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A503", + "url": "https://www.mcmaster.com/91263A503/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#4-40 x 1/2 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A503", + "url": "https://www.mcmaster.com/91263A503/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "#4-40 x 9/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#4-40 x 5/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A961", + "url": "https://www.mcmaster.com/91263A961/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "#4-40 x 5/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A961", + "url": "https://www.mcmaster.com/91263A961/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#4-40 x 3/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A962", + "url": "https://www.mcmaster.com/91263A962/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "#4-40 x 3/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A962", + "url": "https://www.mcmaster.com/91263A962/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#4-40 x 7/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "#4-40 x 1 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "#4-40 x 1-1/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#4-40 x 1-1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "#4-40 x 1-1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_09375" + }, + "name": "#6-32 x 3/32 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A268", + "url": "https://www.mcmaster.com/91251A268/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_125" + }, + "name": "#6-32 x 1/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A084", + "url": "https://www.mcmaster.com/91864A084/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_125" + }, + "name": "#6-32 x 1/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A118", + "url": "https://www.mcmaster.com/90128A118/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_15625" + }, + "name": "#6-32 x 5/32 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A269", + "url": "https://www.mcmaster.com/91251A269/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "#6-32 x 3/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A085", + "url": "https://www.mcmaster.com/91864A085/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_1875" + }, + "name": "#6-32 x 3/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A121", + "url": "https://www.mcmaster.com/90128A121/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#6-32 x 1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A144", + "url": "https://www.mcmaster.com/91251A144/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "#6-32 x 1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A144", + "url": "https://www.mcmaster.com/90128A144/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#6-32 x 5/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A019", + "url": "https://www.mcmaster.com/91864A019/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_3125" + }, + "name": "#6-32 x 5/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A145", + "url": "https://www.mcmaster.com/90128A145/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#6-32 x 3/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A146", + "url": "https://www.mcmaster.com/91251A146/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#6-32 x 3/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A146", + "url": "https://www.mcmaster.com/90128A146/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "#6-32 x 7/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A023", + "url": "https://www.mcmaster.com/91864A023/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_4375" + }, + "name": "#6-32 x 7/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A312", + "url": "https://www.mcmaster.com/90128A312/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#6-32 x 1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A148", + "url": "https://www.mcmaster.com/91251A148/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#6-32 x 1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A148", + "url": "https://www.mcmaster.com/90128A148/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "#6-32 x 9/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A086", + "url": "https://www.mcmaster.com/91864A086/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#6-32 x 5/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A150", + "url": "https://www.mcmaster.com/91251A150/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "#6-32 x 5/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A150", + "url": "https://www.mcmaster.com/90128A150/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#6-32 x 3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A151", + "url": "https://www.mcmaster.com/91251A151/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "#6-32 x 3/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A151", + "url": "https://www.mcmaster.com/90128A151/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#6-32 x 7/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A152", + "url": "https://www.mcmaster.com/91251A152/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_875" + }, + "name": "#6-32 x 7/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A152", + "url": "https://www.mcmaster.com/90128A152/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "#6-32 x 1 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A153", + "url": "https://www.mcmaster.com/91251A153/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "#6-32 x 1-1/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A870", + "url": "https://www.mcmaster.com/91251A870/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_125" + }, + "name": "#6-32 x 1-1/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_25", + "fullyThreaded": "false" + }, + "name": "#6-32 x 1-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A155", + "url": "https://www.mcmaster.com/91251A155/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_25", + "fullyThreaded": "true" + }, + "name": "#6-32 x 1-1/4 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A112", + "url": "https://www.mcmaster.com/90044A112/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_25" + }, + "name": "#6-32 x 1-1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A160", + "url": "https://www.mcmaster.com/90128A160/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_375" + }, + "name": "#6-32 x 1-3/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A874", + "url": "https://www.mcmaster.com/91251A874/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "#6-32 x 1-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A157", + "url": "https://www.mcmaster.com/91251A157/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_5" + }, + "name": "#6-32 x 1-1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A164", + "url": "https://www.mcmaster.com/90128A164/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_625" + }, + "name": "#6-32 x 1-5/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A875", + "url": "https://www.mcmaster.com/91251A875/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "#6-32 x 1-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A158", + "url": "https://www.mcmaster.com/91251A158/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_875" + }, + "name": "#6-32 x 1-7/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A270", + "url": "https://www.mcmaster.com/91251A270/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_875" + }, + "name": "#6-32 x 1-7/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "#6-32 x 2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A159", + "url": "https://www.mcmaster.com/91251A159/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_25" + }, + "name": "#6-32 x 2-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A876", + "url": "https://www.mcmaster.com/91251A876/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_5" + }, + "name": "#6-32 x 2-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A871", + "url": "https://www.mcmaster.com/91251A871/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_75" + }, + "name": "#6-32 x 2-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A872", + "url": "https://www.mcmaster.com/91251A872/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3" + }, + "name": "#6-32 x 3 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A873", + "url": "https://www.mcmaster.com/91251A873/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3_5" + }, + "name": "#6-32 x 3-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A295", + "url": "https://www.mcmaster.com/90044A295/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_125" + }, + "name": "#6-32 x 1/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A140", + "url": "https://www.mcmaster.com/91255A140/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_125" + }, + "name": "#6-32 x 1/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A259", + "url": "https://www.mcmaster.com/91306A259/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "#6-32 x 3/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A142", + "url": "https://www.mcmaster.com/91255A142/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_1875" + }, + "name": "#6-32 x 3/16 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A260", + "url": "https://www.mcmaster.com/91306A260/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#6-32 x 1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A144", + "url": "https://www.mcmaster.com/91255A144/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "#6-32 x 1/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A320", + "url": "https://www.mcmaster.com/91306A320/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#6-32 x 5/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A145", + "url": "https://www.mcmaster.com/91255A145/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#6-32 x 3/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A146", + "url": "https://www.mcmaster.com/91255A146/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#6-32 x 3/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A322", + "url": "https://www.mcmaster.com/91306A322/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "#6-32 x 7/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A133", + "url": "https://www.mcmaster.com/91255A133/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_4375" + }, + "name": "#6-32 x 7/16 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A262", + "url": "https://www.mcmaster.com/91306A262/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#6-32 x 1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A148", + "url": "https://www.mcmaster.com/91255A148/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#6-32 x 1/2 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A324", + "url": "https://www.mcmaster.com/91306A324/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "#6-32 x 9/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A134", + "url": "https://www.mcmaster.com/91255A134/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#6-32 x 5/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A150", + "url": "https://www.mcmaster.com/91255A150/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "#6-32 x 5/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A327", + "url": "https://www.mcmaster.com/91306A327/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#6-32 x 3/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A151", + "url": "https://www.mcmaster.com/91255A151/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "#6-32 x 3/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A263", + "url": "https://www.mcmaster.com/91306A263/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#6-32 x 7/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A152", + "url": "https://www.mcmaster.com/91255A152/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1", + "fullyThreaded": "false" + }, + "name": "#6-32 x 1 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A153", + "url": "https://www.mcmaster.com/91255A153/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1", + "fullyThreaded": "true" + }, + "name": "#6-32 x 1 in Button Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "#6-32 x 1-1/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A135", + "url": "https://www.mcmaster.com/91255A135/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#6-32 x 1-1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A155", + "url": "https://www.mcmaster.com/91255A155/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_125" + }, + "name": "#6-32 x 1/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_15625" + }, + "name": "#6-32 x 5/32 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "#6-32 x 3/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A505", + "url": "https://www.mcmaster.com/91263A505/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_1875" + }, + "name": "#6-32 x 3/16 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A505", + "url": "https://www.mcmaster.com/91263A505/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#6-32 x 1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A512", + "url": "https://www.mcmaster.com/91263A512/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "#6-32 x 1/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A512", + "url": "https://www.mcmaster.com/91263A512/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#6-32 x 5/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A506", + "url": "https://www.mcmaster.com/91263A506/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_3125" + }, + "name": "#6-32 x 5/16 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A506", + "url": "https://www.mcmaster.com/91263A506/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#6-32 x 3/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A514", + "url": "https://www.mcmaster.com/91263A514/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#6-32 x 3/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A514", + "url": "https://www.mcmaster.com/91263A514/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "#6-32 x 7/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#6-32 x 1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A516", + "url": "https://www.mcmaster.com/91263A516/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#6-32 x 1/2 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A516", + "url": "https://www.mcmaster.com/91263A516/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "#6-32 x 9/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#6-32 x 5/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A507", + "url": "https://www.mcmaster.com/91263A507/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "#6-32 x 5/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A507", + "url": "https://www.mcmaster.com/91263A507/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#6-32 x 3/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A518", + "url": "https://www.mcmaster.com/91263A518/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "#6-32 x 3/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A518", + "url": "https://www.mcmaster.com/91263A518/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#6-32 x 7/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "#6-32 x 1 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A520", + "url": "https://www.mcmaster.com/91263A520/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#6-32 x 1-1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "#6-32 x 1-1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "#6-32 x 1-3/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_09375" + }, + "name": "#8-32 x 3/32 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A271", + "url": "https://www.mcmaster.com/91251A271/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_125" + }, + "name": "#8-32 x 1/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A179", + "url": "https://www.mcmaster.com/91251A179/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_125" + }, + "name": "#8-32 x 1/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A122", + "url": "https://www.mcmaster.com/90128A122/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_15625" + }, + "name": "#8-32 x 5/32 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A272", + "url": "https://www.mcmaster.com/91251A272/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "#8-32 x 3/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A180", + "url": "https://www.mcmaster.com/91251A180/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_1875" + }, + "name": "#8-32 x 3/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A124", + "url": "https://www.mcmaster.com/90128A124/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#8-32 x 1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A190", + "url": "https://www.mcmaster.com/91251A190/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "#8-32 x 1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A191", + "url": "https://www.mcmaster.com/90128A191/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#8-32 x 5/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A191", + "url": "https://www.mcmaster.com/91251A191/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_3125" + }, + "name": "#8-32 x 5/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A125", + "url": "https://www.mcmaster.com/90128A125/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#8-32 x 3/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A192", + "url": "https://www.mcmaster.com/91251A192/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#8-32 x 3/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A192", + "url": "https://www.mcmaster.com/90128A192/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "#8-32 x 7/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A024", + "url": "https://www.mcmaster.com/91864A024/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_4375" + }, + "name": "#8-32 x 7/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A313", + "url": "https://www.mcmaster.com/90128A313/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#8-32 x 1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A194", + "url": "https://www.mcmaster.com/91251A194/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#8-32 x 1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A194", + "url": "https://www.mcmaster.com/90128A194/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "#8-32 x 9/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A033", + "url": "https://www.mcmaster.com/91864A033/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_5625" + }, + "name": "#8-32 x 9/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A314", + "url": "https://www.mcmaster.com/90128A314/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#8-32 x 5/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A196", + "url": "https://www.mcmaster.com/91251A196/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "#8-32 x 5/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A196", + "url": "https://www.mcmaster.com/90128A196/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_6875" + }, + "name": "#8-32 x 11/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A421", + "url": "https://www.mcmaster.com/90044A421/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#8-32 x 3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A197", + "url": "https://www.mcmaster.com/91251A197/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "#8-32 x 3/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A197", + "url": "https://www.mcmaster.com/90128A197/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#8-32 x 7/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A198", + "url": "https://www.mcmaster.com/91251A198/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_875" + }, + "name": "#8-32 x 7/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A198", + "url": "https://www.mcmaster.com/90128A198/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "#8-32 x 1 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A199", + "url": "https://www.mcmaster.com/91251A199/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1" + }, + "name": "#8-32 x 1 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A199", + "url": "https://www.mcmaster.com/90128A199/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "#8-32 x 1-1/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A025", + "url": "https://www.mcmaster.com/91864A025/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_125" + }, + "name": "#8-32 x 1-1/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A126", + "url": "https://www.mcmaster.com/90128A126/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#8-32 x 1-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A201", + "url": "https://www.mcmaster.com/91251A201/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_25" + }, + "name": "#8-32 x 1-1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A201", + "url": "https://www.mcmaster.com/90128A201/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_375" + }, + "name": "#8-32 x 1-3/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A026", + "url": "https://www.mcmaster.com/91864A026/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_5", + "fullyThreaded": "false" + }, + "name": "#8-32 x 1-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A203", + "url": "https://www.mcmaster.com/91251A203/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_5", + "fullyThreaded": "true" + }, + "name": "#8-32 x 1-1/2 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A511", + "url": "https://www.mcmaster.com/90044A511/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_5" + }, + "name": "#8-32 x 1-1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A203", + "url": "https://www.mcmaster.com/90128A203/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_625" + }, + "name": "#8-32 x 1-5/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A027", + "url": "https://www.mcmaster.com/91864A027/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_75", + "fullyThreaded": "false" + }, + "name": "#8-32 x 1-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A082", + "url": "https://www.mcmaster.com/91251A082/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_75", + "fullyThreaded": "true" + }, + "name": "#8-32 x 1-3/4 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A512", + "url": "https://www.mcmaster.com/90044A512/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_75" + }, + "name": "#8-32 x 1-3/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A206", + "url": "https://www.mcmaster.com/90128A206/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_875" + }, + "name": "#8-32 x 1-7/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A188", + "url": "https://www.mcmaster.com/91251A188/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2", + "fullyThreaded": "false" + }, + "name": "#8-32 x 2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A205", + "url": "https://www.mcmaster.com/91251A205/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2", + "fullyThreaded": "true" + }, + "name": "#8-32 x 2 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A113", + "url": "https://www.mcmaster.com/90044A113/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_25", + "fullyThreaded": "false" + }, + "name": "#8-32 x 2-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A184", + "url": "https://www.mcmaster.com/91251A184/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_25", + "fullyThreaded": "true" + }, + "name": "#8-32 x 2-1/4 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A513", + "url": "https://www.mcmaster.com/90044A513/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_5", + "fullyThreaded": "false" + }, + "name": "#8-32 x 2-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A207", + "url": "https://www.mcmaster.com/91251A207/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_5", + "fullyThreaded": "true" + }, + "name": "#8-32 x 2-1/2 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A514", + "url": "https://www.mcmaster.com/90044A514/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_2_5" + }, + "name": "#8-32 x 2-1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A213", + "url": "https://www.mcmaster.com/90128A213/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_75", + "fullyThreaded": "false" + }, + "name": "#8-32 x 2-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A827", + "url": "https://www.mcmaster.com/91251A827/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_75", + "fullyThreaded": "true" + }, + "name": "#8-32 x 2-3/4 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A515", + "url": "https://www.mcmaster.com/90044A515/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3", + "fullyThreaded": "false" + }, + "name": "#8-32 x 3 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A086", + "url": "https://www.mcmaster.com/91251A086/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3", + "fullyThreaded": "true" + }, + "name": "#8-32 x 3 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A516", + "url": "https://www.mcmaster.com/90044A516/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3_25" + }, + "name": "#8-32 x 3-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A189", + "url": "https://www.mcmaster.com/91251A189/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3_5" + }, + "name": "#8-32 x 3-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A186", + "url": "https://www.mcmaster.com/91251A186/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3_75" + }, + "name": "#8-32 x 3-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A285", + "url": "https://www.mcmaster.com/91251A285/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_4" + }, + "name": "#8-32 x 4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A193", + "url": "https://www.mcmaster.com/91251A193/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_4_5" + }, + "name": "#8-32 x 4-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A297", + "url": "https://www.mcmaster.com/90044A297/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_5" + }, + "name": "#8-32 x 5 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A298", + "url": "https://www.mcmaster.com/90044A298/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_125" + }, + "name": "#8-32 x 1/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A162", + "url": "https://www.mcmaster.com/91255A162/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_15625" + }, + "name": "#8-32 x 5/32 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A163", + "url": "https://www.mcmaster.com/91255A163/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "#8-32 x 3/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A189", + "url": "https://www.mcmaster.com/91255A189/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_1875" + }, + "name": "#8-32 x 3/16 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A264", + "url": "https://www.mcmaster.com/91306A264/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#8-32 x 1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A190", + "url": "https://www.mcmaster.com/91255A190/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "#8-32 x 1/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A333", + "url": "https://www.mcmaster.com/91306A333/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#8-32 x 5/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A191", + "url": "https://www.mcmaster.com/91255A191/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_3125" + }, + "name": "#8-32 x 5/16 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A265", + "url": "https://www.mcmaster.com/91306A265/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#8-32 x 3/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A192", + "url": "https://www.mcmaster.com/91255A192/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#8-32 x 3/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A335", + "url": "https://www.mcmaster.com/91306A335/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "#8-32 x 7/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A164", + "url": "https://www.mcmaster.com/91255A164/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_4375" + }, + "name": "#8-32 x 7/16 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A266", + "url": "https://www.mcmaster.com/91306A266/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#8-32 x 1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A194", + "url": "https://www.mcmaster.com/91255A194/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#8-32 x 1/2 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A337", + "url": "https://www.mcmaster.com/91306A337/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "#8-32 x 9/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A165", + "url": "https://www.mcmaster.com/91255A165/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#8-32 x 5/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A196", + "url": "https://www.mcmaster.com/91255A196/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "#8-32 x 5/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A338", + "url": "https://www.mcmaster.com/91306A338/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#8-32 x 3/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A197", + "url": "https://www.mcmaster.com/91255A197/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "#8-32 x 3/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A339", + "url": "https://www.mcmaster.com/91306A339/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#8-32 x 7/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A166", + "url": "https://www.mcmaster.com/91255A166/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_875" + }, + "name": "#8-32 x 7/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A267", + "url": "https://www.mcmaster.com/91306A267/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "#8-32 x 1 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A199", + "url": "https://www.mcmaster.com/91255A199/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_1" + }, + "name": "#8-32 x 1 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A340", + "url": "https://www.mcmaster.com/91306A340/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "#8-32 x 1-1/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A167", + "url": "https://www.mcmaster.com/91255A167/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#8-32 x 1-1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A201", + "url": "https://www.mcmaster.com/91255A201/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_375" + }, + "name": "#8-32 x 1-3/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A168", + "url": "https://www.mcmaster.com/91255A168/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "#8-32 x 1-1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A203", + "url": "https://www.mcmaster.com/91255A203/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_1_5" + }, + "name": "#8-32 x 1-1/2 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A268", + "url": "https://www.mcmaster.com/91306A268/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "#8-32 x 1-3/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A169", + "url": "https://www.mcmaster.com/91255A169/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "#8-32 x 2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A205", + "url": "https://www.mcmaster.com/91255A205/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_25" + }, + "name": "#8-32 x 2-1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A206", + "url": "https://www.mcmaster.com/91255A206/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_5" + }, + "name": "#8-32 x 2-1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A811", + "url": "https://www.mcmaster.com/91255A811/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_3" + }, + "name": "#8-32 x 3 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A812", + "url": "https://www.mcmaster.com/91255A812/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_15625" + }, + "name": "#8-32 x 5/32 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "#8-32 x 3/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#8-32 x 1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A521", + "url": "https://www.mcmaster.com/91263A521/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "#8-32 x 1/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A521", + "url": "https://www.mcmaster.com/91263A521/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#8-32 x 5/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A523", + "url": "https://www.mcmaster.com/91263A523/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_3125" + }, + "name": "#8-32 x 5/16 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A523", + "url": "https://www.mcmaster.com/91263A523/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#8-32 x 3/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A522", + "url": "https://www.mcmaster.com/91263A522/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#8-32 x 3/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A522", + "url": "https://www.mcmaster.com/91263A522/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "#8-32 x 7/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#8-32 x 1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A524", + "url": "https://www.mcmaster.com/91263A524/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#8-32 x 1/2 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A524", + "url": "https://www.mcmaster.com/91263A524/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "#8-32 x 9/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#8-32 x 5/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A525", + "url": "https://www.mcmaster.com/91263A525/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "#8-32 x 5/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A525", + "url": "https://www.mcmaster.com/91263A525/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#8-32 x 3/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A526", + "url": "https://www.mcmaster.com/91263A526/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "#8-32 x 3/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A526", + "url": "https://www.mcmaster.com/91263A526/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#8-32 x 7/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A527", + "url": "https://www.mcmaster.com/91263A527/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_875" + }, + "name": "#8-32 x 7/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A527", + "url": "https://www.mcmaster.com/91263A527/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "#8-32 x 1 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A528", + "url": "https://www.mcmaster.com/91263A528/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_1" + }, + "name": "#8-32 x 1 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A528", + "url": "https://www.mcmaster.com/91263A528/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "#8-32 x 1-1/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#8-32 x 1-1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A142", + "url": "https://www.mcmaster.com/91263A142/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_1_25" + }, + "name": "#8-32 x 1-1/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A142", + "url": "https://www.mcmaster.com/91263A142/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_375" + }, + "name": "#8-32 x 1-3/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "#8-32 x 1-1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A145", + "url": "https://www.mcmaster.com/91263A145/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_1_5" + }, + "name": "#8-32 x 1-1/2 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A145", + "url": "https://www.mcmaster.com/91263A145/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_625" + }, + "name": "#8-32 x 1-5/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "#8-32 x 1-3/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "#8-32 x 2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_2_25" + }, + "name": "#8-32 x 2-1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_2_5" + }, + "name": "#8-32 x 2-1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_3" + }, + "name": "#8-32 x 3 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_15625" + }, + "name": "#10-32 x 5/32 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A518", + "url": "https://www.mcmaster.com/91251A518/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "#10-32 x 3/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A901", + "url": "https://www.mcmaster.com/91251A901/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_1875" + }, + "name": "#10-32 x 3/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A129", + "url": "https://www.mcmaster.com/90128A129/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A338", + "url": "https://www.mcmaster.com/91251A338/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A932", + "url": "https://www.mcmaster.com/90128A932/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#10-32 x 5/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A337", + "url": "https://www.mcmaster.com/91251A337/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_3125" + }, + "name": "#10-32 x 5/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A131", + "url": "https://www.mcmaster.com/90128A131/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A340", + "url": "https://www.mcmaster.com/91251A340/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A940", + "url": "https://www.mcmaster.com/90128A940/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "#10-32 x 7/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A350", + "url": "https://www.mcmaster.com/91251A350/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_4375" + }, + "name": "#10-32 x 7/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A315", + "url": "https://www.mcmaster.com/90128A315/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A342", + "url": "https://www.mcmaster.com/91251A342/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A942", + "url": "https://www.mcmaster.com/90128A942/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "#10-32 x 9/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A356", + "url": "https://www.mcmaster.com/91251A356/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_5625" + }, + "name": "#10-32 x 9/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A316", + "url": "https://www.mcmaster.com/90128A316/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A344", + "url": "https://www.mcmaster.com/91251A344/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A944", + "url": "https://www.mcmaster.com/90128A944/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_6875" + }, + "name": "#10-32 x 11/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A201", + "url": "https://www.mcmaster.com/90044A201/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A345", + "url": "https://www.mcmaster.com/91251A345/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A945", + "url": "https://www.mcmaster.com/90128A945/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#10-32 x 7/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A346", + "url": "https://www.mcmaster.com/91251A346/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_875" + }, + "name": "#10-32 x 7/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A946", + "url": "https://www.mcmaster.com/90128A946/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A347", + "url": "https://www.mcmaster.com/91251A347/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A947", + "url": "https://www.mcmaster.com/90128A947/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "#10-32 x 1-1/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A348", + "url": "https://www.mcmaster.com/91251A348/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A349", + "url": "https://www.mcmaster.com/91251A349/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A948", + "url": "https://www.mcmaster.com/90128A948/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_375" + }, + "name": "#10-32 x 1-3/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A202", + "url": "https://www.mcmaster.com/90044A202/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_375" + }, + "name": "#10-32 x 1-3/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A132", + "url": "https://www.mcmaster.com/90128A132/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_5", + "fullyThreaded": "false" + }, + "name": "#10-32 x 1-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A351", + "url": "https://www.mcmaster.com/91251A351/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_5", + "fullyThreaded": "true" + }, + "name": "#10-32 x 1-1/2 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A118", + "url": "https://www.mcmaster.com/90044A118/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A951", + "url": "https://www.mcmaster.com/90128A951/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_625" + }, + "name": "#10-32 x 1-5/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A287", + "url": "https://www.mcmaster.com/91251A287/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_75", + "fullyThreaded": "false" + }, + "name": "#10-32 x 1-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A352", + "url": "https://www.mcmaster.com/91251A352/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_75", + "fullyThreaded": "true" + }, + "name": "#10-32 x 1-3/4 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A119", + "url": "https://www.mcmaster.com/90044A119/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_75" + }, + "name": "#10-32 x 1-3/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A953", + "url": "https://www.mcmaster.com/90128A953/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_875" + }, + "name": "#10-32 x 1-7/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A288", + "url": "https://www.mcmaster.com/91251A288/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2", + "fullyThreaded": "false" + }, + "name": "#10-32 x 2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A353", + "url": "https://www.mcmaster.com/91251A353/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2", + "fullyThreaded": "true" + }, + "name": "#10-32 x 2 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A120", + "url": "https://www.mcmaster.com/90044A120/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A955", + "url": "https://www.mcmaster.com/90128A955/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_25", + "fullyThreaded": "false" + }, + "name": "#10-32 x 2-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A354", + "url": "https://www.mcmaster.com/91251A354/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_25", + "fullyThreaded": "true" + }, + "name": "#10-32 x 2-1/4 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A523", + "url": "https://www.mcmaster.com/90044A523/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_2_25" + }, + "name": "#10-32 x 2-1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A957", + "url": "https://www.mcmaster.com/90128A957/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_5", + "fullyThreaded": "false" + }, + "name": "#10-32 x 2-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A355", + "url": "https://www.mcmaster.com/91251A355/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_5", + "fullyThreaded": "true" + }, + "name": "#10-32 x 2-1/2 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A121", + "url": "https://www.mcmaster.com/90044A121/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_2_5" + }, + "name": "#10-32 x 2-1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A961", + "url": "https://www.mcmaster.com/90128A961/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_75", + "fullyThreaded": "false" + }, + "name": "#10-32 x 2-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A359", + "url": "https://www.mcmaster.com/91251A359/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_75", + "fullyThreaded": "true" + }, + "name": "#10-32 x 2-3/4 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A524", + "url": "https://www.mcmaster.com/90044A524/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_2_75" + }, + "name": "#10-32 x 2-3/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A965", + "url": "https://www.mcmaster.com/90128A965/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3", + "fullyThreaded": "false" + }, + "name": "#10-32 x 3 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A360", + "url": "https://www.mcmaster.com/91251A360/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3", + "fullyThreaded": "true" + }, + "name": "#10-32 x 3 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A122", + "url": "https://www.mcmaster.com/90044A122/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_3" + }, + "name": "#10-32 x 3 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A969", + "url": "https://www.mcmaster.com/90128A969/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3_5", + "fullyThreaded": "false" + }, + "name": "#10-32 x 3-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A361", + "url": "https://www.mcmaster.com/91251A361/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3_5", + "fullyThreaded": "true" + }, + "name": "#10-32 x 3-1/2 in Socket Head Screw (Fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "90044A525", + "url": "https://www.mcmaster.com/90044A525/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_3_5" + }, + "name": "#10-32 x 3-1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A973", + "url": "https://www.mcmaster.com/90128A973/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3_75" + }, + "name": "#10-32 x 3-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A289", + "url": "https://www.mcmaster.com/91251A289/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_4" + }, + "name": "#10-32 x 4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A364", + "url": "https://www.mcmaster.com/91251A364/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_4" + }, + "name": "#10-32 x 4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A977", + "url": "https://www.mcmaster.com/90128A977/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_4_5" + }, + "name": "#10-32 x 4-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A357", + "url": "https://www.mcmaster.com/91251A357/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_5" + }, + "name": "#10-32 x 5 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A358", + "url": "https://www.mcmaster.com/91251A358/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_5_5" + }, + "name": "#10-32 x 5-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A906", + "url": "https://www.mcmaster.com/91251A906/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_6" + }, + "name": "#10-32 x 6 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A907", + "url": "https://www.mcmaster.com/91251A907/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_6_5" + }, + "name": "#10-32 x 6-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A262", + "url": "https://www.mcmaster.com/90044A262/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_7" + }, + "name": "#10-32 x 7 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A263", + "url": "https://www.mcmaster.com/90044A263/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_125" + }, + "name": "#10-32 x 1/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A024", + "url": "https://www.mcmaster.com/91255A024/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "#10-32 x 3/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A025", + "url": "https://www.mcmaster.com/91255A025/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A261", + "url": "https://www.mcmaster.com/91255A261/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A352", + "url": "https://www.mcmaster.com/91306A352/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#10-32 x 5/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A262", + "url": "https://www.mcmaster.com/91255A262/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_3125" + }, + "name": "#10-32 x 5/16 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A272", + "url": "https://www.mcmaster.com/91306A272/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A263", + "url": "https://www.mcmaster.com/91255A263/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A354", + "url": "https://www.mcmaster.com/91306A354/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "#10-32 x 7/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A026", + "url": "https://www.mcmaster.com/91255A026/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_4375" + }, + "name": "#10-32 x 7/16 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A273", + "url": "https://www.mcmaster.com/91306A273/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A265", + "url": "https://www.mcmaster.com/91255A265/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A356", + "url": "https://www.mcmaster.com/91306A356/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "#10-32 x 9/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A027", + "url": "https://www.mcmaster.com/91255A027/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A267", + "url": "https://www.mcmaster.com/91255A267/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A274", + "url": "https://www.mcmaster.com/91306A274/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A269", + "url": "https://www.mcmaster.com/91255A269/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A358", + "url": "https://www.mcmaster.com/91306A358/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#10-32 x 7/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A271", + "url": "https://www.mcmaster.com/91255A271/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_875" + }, + "name": "#10-32 x 7/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A275", + "url": "https://www.mcmaster.com/91306A275/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A273", + "url": "https://www.mcmaster.com/91255A273/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A276", + "url": "https://www.mcmaster.com/91306A276/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "#10-32 x 1-1/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A028", + "url": "https://www.mcmaster.com/91255A028/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A274", + "url": "https://www.mcmaster.com/91255A274/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A714", + "url": "https://www.mcmaster.com/91306A714/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_375" + }, + "name": "#10-32 x 1-3/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A272", + "url": "https://www.mcmaster.com/91255A272/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A275", + "url": "https://www.mcmaster.com/91255A275/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A277", + "url": "https://www.mcmaster.com/91306A277/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_625" + }, + "name": "#10-32 x 1-5/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A277", + "url": "https://www.mcmaster.com/91255A277/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "#10-32 x 1-3/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A276", + "url": "https://www.mcmaster.com/91255A276/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A278", + "url": "https://www.mcmaster.com/91255A278/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A715", + "url": "https://www.mcmaster.com/91306A715/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_25" + }, + "name": "#10-32 x 2-1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A815", + "url": "https://www.mcmaster.com/91255A815/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_5" + }, + "name": "#10-32 x 2-1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A029", + "url": "https://www.mcmaster.com/91255A029/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_3" + }, + "name": "#10-32 x 3 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A030", + "url": "https://www.mcmaster.com/91255A030/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "#10-32 x 3/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A540", + "url": "https://www.mcmaster.com/91263A540/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A540", + "url": "https://www.mcmaster.com/91263A540/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#10-32 x 5/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A157", + "url": "https://www.mcmaster.com/91263A157/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_3125" + }, + "name": "#10-32 x 5/16 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A157", + "url": "https://www.mcmaster.com/91263A157/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A542", + "url": "https://www.mcmaster.com/91263A542/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A542", + "url": "https://www.mcmaster.com/91263A542/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "#10-32 x 7/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A544", + "url": "https://www.mcmaster.com/91263A544/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A544", + "url": "https://www.mcmaster.com/91263A544/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "#10-32 x 9/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A543", + "url": "https://www.mcmaster.com/91263A543/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A543", + "url": "https://www.mcmaster.com/91263A543/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A546", + "url": "https://www.mcmaster.com/91263A546/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A546", + "url": "https://www.mcmaster.com/91263A546/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#10-32 x 7/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A547", + "url": "https://www.mcmaster.com/91263A547/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_875" + }, + "name": "#10-32 x 7/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A547", + "url": "https://www.mcmaster.com/91263A547/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A548", + "url": "https://www.mcmaster.com/91263A548/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A548", + "url": "https://www.mcmaster.com/91263A548/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "#10-32 x 1-1/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A160", + "url": "https://www.mcmaster.com/91263A160/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A160", + "url": "https://www.mcmaster.com/91263A160/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_375" + }, + "name": "#10-32 x 1-3/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A550", + "url": "https://www.mcmaster.com/91263A550/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A550", + "url": "https://www.mcmaster.com/91263A550/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_625" + }, + "name": "#10-32 x 1-5/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "#10-32 x 1-3/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_2_25" + }, + "name": "#10-32 x 2-1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_2_5" + }, + "name": "#10-32 x 2-1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A163", + "url": "https://www.mcmaster.com/91263A163/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_3" + }, + "name": "#10-32 x 3 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_3_5" + }, + "name": "#10-32 x 3-1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_4" + }, + "name": "#10-32 x 4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "1/4-20 x 1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A533", + "url": "https://www.mcmaster.com/91251A533/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "1/4-20 x 1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A239", + "url": "https://www.mcmaster.com/90128A239/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "1/4-20 x 5/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A061", + "url": "https://www.mcmaster.com/91864A061/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "1/4-20 x 3/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A535", + "url": "https://www.mcmaster.com/91251A535/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "1/4-20 x 3/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A241", + "url": "https://www.mcmaster.com/90128A241/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "1/4-20 x 7/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91864A062", + "url": "https://www.mcmaster.com/91864A062/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_4375" + }, + "name": "1/4-20 x 7/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A317", + "url": "https://www.mcmaster.com/90128A317/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "1/4-20 x 1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A537", + "url": "https://www.mcmaster.com/91251A537/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "1/4-20 x 1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A242", + "url": "https://www.mcmaster.com/90128A242/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "1/4-20 x 9/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A538", + "url": "https://www.mcmaster.com/91251A538/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_5625" + }, + "name": "1/4-20 x 9/16 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A318", + "url": "https://www.mcmaster.com/90128A318/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "1/4-20 x 5/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A539", + "url": "https://www.mcmaster.com/91251A539/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "1/4-20 x 5/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A243", + "url": "https://www.mcmaster.com/90128A243/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_6875" + }, + "name": "1/4-20 x 11/16 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A423", + "url": "https://www.mcmaster.com/90044A423/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "1/4-20 x 3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A540", + "url": "https://www.mcmaster.com/91251A540/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "1/4-20 x 3/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A245", + "url": "https://www.mcmaster.com/90128A245/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "1/4-20 x 7/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A541", + "url": "https://www.mcmaster.com/91251A541/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_0_875" + }, + "name": "1/4-20 x 7/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A246", + "url": "https://www.mcmaster.com/90128A246/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "1/4-20 x 1 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A542", + "url": "https://www.mcmaster.com/91251A542/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1" + }, + "name": "1/4-20 x 1 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A247", + "url": "https://www.mcmaster.com/90128A247/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "1/4-20 x 1-1/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A560", + "url": "https://www.mcmaster.com/91251A560/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_125" + }, + "name": "1/4-20 x 1-1/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A133", + "url": "https://www.mcmaster.com/90128A133/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "1/4-20 x 1-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A544", + "url": "https://www.mcmaster.com/91251A544/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_25" + }, + "name": "1/4-20 x 1-1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A250", + "url": "https://www.mcmaster.com/90128A250/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_375" + }, + "name": "1/4-20 x 1-3/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A543", + "url": "https://www.mcmaster.com/91251A543/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_375" + }, + "name": "1/4-20 x 1-3/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A301", + "url": "https://www.mcmaster.com/90128A301/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "1/4-20 x 1-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A123", + "url": "https://www.mcmaster.com/90044A123/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_5" + }, + "name": "1/4-20 x 1-1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A251", + "url": "https://www.mcmaster.com/90128A251/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_625" + }, + "name": "1/4-20 x 1-5/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A527", + "url": "https://www.mcmaster.com/91251A527/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_625" + }, + "name": "1/4-20 x 1-5/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A319", + "url": "https://www.mcmaster.com/90128A319/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "1/4-20 x 1-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A124", + "url": "https://www.mcmaster.com/90044A124/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_75" + }, + "name": "1/4-20 x 1-3/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A252", + "url": "https://www.mcmaster.com/90128A252/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_1_875" + }, + "name": "1/4-20 x 1-7/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A548", + "url": "https://www.mcmaster.com/91251A548/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_1_875" + }, + "name": "1/4-20 x 1-7/8 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90044A424", + "url": "https://www.mcmaster.com/90044A424/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "1/4-20 x 2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A125", + "url": "https://www.mcmaster.com/90044A125/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_2" + }, + "name": "1/4-20 x 2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A253", + "url": "https://www.mcmaster.com/90128A253/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_25" + }, + "name": "1/4-20 x 2-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A126", + "url": "https://www.mcmaster.com/90044A126/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_2_25" + }, + "name": "1/4-20 x 2-1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A254", + "url": "https://www.mcmaster.com/90128A254/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_375" + }, + "name": "1/4-20 x 2-3/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A425", + "url": "https://www.mcmaster.com/90044A425/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_5" + }, + "name": "1/4-20 x 2-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A127", + "url": "https://www.mcmaster.com/90044A127/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_2_5" + }, + "name": "1/4-20 x 2-1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A255", + "url": "https://www.mcmaster.com/90128A255/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_625" + }, + "name": "1/4-20 x 2-5/8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A426", + "url": "https://www.mcmaster.com/90044A426/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_2_75" + }, + "name": "1/4-20 x 2-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A128", + "url": "https://www.mcmaster.com/90044A128/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_2_75" + }, + "name": "1/4-20 x 2-3/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A259", + "url": "https://www.mcmaster.com/90128A259/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3" + }, + "name": "1/4-20 x 3 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A129", + "url": "https://www.mcmaster.com/90044A129/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_3" + }, + "name": "1/4-20 x 3 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A554", + "url": "https://www.mcmaster.com/90128A554/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3_25" + }, + "name": "1/4-20 x 3-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A526", + "url": "https://www.mcmaster.com/90044A526/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_3_25" + }, + "name": "1/4-20 x 3-1/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A557", + "url": "https://www.mcmaster.com/90128A557/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3_5" + }, + "name": "1/4-20 x 3-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A316", + "url": "https://www.mcmaster.com/90044A316/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_3_5" + }, + "name": "1/4-20 x 3-1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A560", + "url": "https://www.mcmaster.com/90128A560/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_3_75" + }, + "name": "1/4-20 x 3-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A527", + "url": "https://www.mcmaster.com/90044A527/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_3_75" + }, + "name": "1/4-20 x 3-3/4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A563", + "url": "https://www.mcmaster.com/90128A563/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_4" + }, + "name": "1/4-20 x 4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A131", + "url": "https://www.mcmaster.com/90044A131/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_4" + }, + "name": "1/4-20 x 4 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A566", + "url": "https://www.mcmaster.com/90128A566/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_4_25" + }, + "name": "1/4-20 x 4-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A559", + "url": "https://www.mcmaster.com/91251A559/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_4_5" + }, + "name": "1/4-20 x 4-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A089", + "url": "https://www.mcmaster.com/91251A089/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_4_5" + }, + "name": "1/4-20 x 4-1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A569", + "url": "https://www.mcmaster.com/90128A569/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_5" + }, + "name": "1/4-20 x 5 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A090", + "url": "https://www.mcmaster.com/91251A090/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_5" + }, + "name": "1/4-20 x 5 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A572", + "url": "https://www.mcmaster.com/90128A572/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_5_25" + }, + "name": "1/4-20 x 5-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A293", + "url": "https://www.mcmaster.com/91251A293/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_5_5" + }, + "name": "1/4-20 x 5-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A093", + "url": "https://www.mcmaster.com/91251A093/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_5_5" + }, + "name": "1/4-20 x 5-1/2 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A575", + "url": "https://www.mcmaster.com/90128A575/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_5_75" + }, + "name": "1/4-20 x 5-3/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A294", + "url": "https://www.mcmaster.com/91251A294/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_6" + }, + "name": "1/4-20 x 6 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A095", + "url": "https://www.mcmaster.com/91251A095/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "IN_6" + }, + "name": "1/4-20 x 6 in Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A577", + "url": "https://www.mcmaster.com/90128A577/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_6_25" + }, + "name": "1/4-20 x 6-1/4 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A562", + "url": "https://www.mcmaster.com/91251A562/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_6_5" + }, + "name": "1/4-20 x 6-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A563", + "url": "https://www.mcmaster.com/91251A563/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_7" + }, + "name": "1/4-20 x 7 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A908", + "url": "https://www.mcmaster.com/91251A908/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_7_5" + }, + "name": "1/4-20 x 7-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A923", + "url": "https://www.mcmaster.com/91251A923/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_8" + }, + "name": "1/4-20 x 8 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91251A566", + "url": "https://www.mcmaster.com/91251A566/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_8_5" + }, + "name": "1/4-20 x 8-1/2 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A299", + "url": "https://www.mcmaster.com/90044A299/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_9" + }, + "name": "1/4-20 x 9 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A311", + "url": "https://www.mcmaster.com/90044A311/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "length": "IN_10" + }, + "name": "1/4-20 x 10 in Socket Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "90044A312", + "url": "https://www.mcmaster.com/90044A312/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_1875" + }, + "name": "1/4-20 x 3/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A521", + "url": "https://www.mcmaster.com/91255A521/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "1/4-20 x 1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A533", + "url": "https://www.mcmaster.com/91255A533/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_25" + }, + "name": "1/4-20 x 1/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A371", + "url": "https://www.mcmaster.com/91306A371/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "1/4-20 x 5/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A522", + "url": "https://www.mcmaster.com/91255A522/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_3125" + }, + "name": "1/4-20 x 5/16 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A278", + "url": "https://www.mcmaster.com/91306A278/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "1/4-20 x 3/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A535", + "url": "https://www.mcmaster.com/91255A535/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "1/4-20 x 3/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A373", + "url": "https://www.mcmaster.com/91306A373/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "1/4-20 x 7/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A523", + "url": "https://www.mcmaster.com/91255A523/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "1/4-20 x 1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A537", + "url": "https://www.mcmaster.com/91255A537/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "1/4-20 x 1/2 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A375", + "url": "https://www.mcmaster.com/91306A375/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "1/4-20 x 9/16 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A524", + "url": "https://www.mcmaster.com/91255A524/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "1/4-20 x 5/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A539", + "url": "https://www.mcmaster.com/91255A539/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "1/4-20 x 5/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A377", + "url": "https://www.mcmaster.com/91306A377/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "1/4-20 x 3/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A540", + "url": "https://www.mcmaster.com/91255A540/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "1/4-20 x 3/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A379", + "url": "https://www.mcmaster.com/91306A379/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "1/4-20 x 7/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A541", + "url": "https://www.mcmaster.com/91255A541/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_875" + }, + "name": "1/4-20 x 7/8 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A279", + "url": "https://www.mcmaster.com/91306A279/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "1/4-20 x 1 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A542", + "url": "https://www.mcmaster.com/91255A542/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_1" + }, + "name": "1/4-20 x 1 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A383", + "url": "https://www.mcmaster.com/91306A383/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "1/4-20 x 1-1/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A525", + "url": "https://www.mcmaster.com/91255A525/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "1/4-20 x 1-1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A544", + "url": "https://www.mcmaster.com/91255A544/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_1_25" + }, + "name": "1/4-20 x 1-1/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A280", + "url": "https://www.mcmaster.com/91306A280/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_375" + }, + "name": "1/4-20 x 1-3/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A526", + "url": "https://www.mcmaster.com/91255A526/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "1/4-20 x 1-1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A546", + "url": "https://www.mcmaster.com/91255A546/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_1_5" + }, + "name": "1/4-20 x 1-1/2 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A384", + "url": "https://www.mcmaster.com/91306A384/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_625" + }, + "name": "1/4-20 x 1-5/8 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A527", + "url": "https://www.mcmaster.com/91255A527/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "1/4-20 x 1-3/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A548", + "url": "https://www.mcmaster.com/91255A548/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_1_75" + }, + "name": "1/4-20 x 1-3/4 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A281", + "url": "https://www.mcmaster.com/91306A281/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "1/4-20 x 2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A545", + "url": "https://www.mcmaster.com/91255A545/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_2" + }, + "name": "1/4-20 x 2 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A282", + "url": "https://www.mcmaster.com/91306A282/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_25" + }, + "name": "1/4-20 x 2-1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A528", + "url": "https://www.mcmaster.com/91255A528/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_5" + }, + "name": "1/4-20 x 2-1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A547", + "url": "https://www.mcmaster.com/91255A547/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_2_5" + }, + "name": "1/4-20 x 2-1/2 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A716", + "url": "https://www.mcmaster.com/91306A716/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_75" + }, + "name": "1/4-20 x 2-3/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A529", + "url": "https://www.mcmaster.com/91255A529/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_3" + }, + "name": "1/4-20 x 3 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A549", + "url": "https://www.mcmaster.com/91255A549/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_3" + }, + "name": "1/4-20 x 3 in Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A717", + "url": "https://www.mcmaster.com/91306A717/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_3_25" + }, + "name": "1/4-20 x 3-1/4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A819", + "url": "https://www.mcmaster.com/91255A819/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_3_5" + }, + "name": "1/4-20 x 3-1/2 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A531", + "url": "https://www.mcmaster.com/91255A531/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_4" + }, + "name": "1/4-20 x 4 in Button Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91255A532", + "url": "https://www.mcmaster.com/91255A532/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "1/4-20 x 1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "1/4-20 x 3/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A551", + "url": "https://www.mcmaster.com/91263A551/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "1/4-20 x 3/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A551", + "url": "https://www.mcmaster.com/91263A551/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_4375" + }, + "name": "1/4-20 x 7/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "1/4-20 x 1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A553", + "url": "https://www.mcmaster.com/91263A553/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "1/4-20 x 1/2 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A553", + "url": "https://www.mcmaster.com/91263A553/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_5625" + }, + "name": "1/4-20 x 9/16 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "1/4-20 x 5/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A556", + "url": "https://www.mcmaster.com/91263A556/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_625" + }, + "name": "1/4-20 x 5/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A556", + "url": "https://www.mcmaster.com/91263A556/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "1/4-20 x 3/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A559", + "url": "https://www.mcmaster.com/91263A559/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_75" + }, + "name": "1/4-20 x 3/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A559", + "url": "https://www.mcmaster.com/91263A559/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "1/4-20 x 7/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A560", + "url": "https://www.mcmaster.com/91263A560/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_0_875" + }, + "name": "1/4-20 x 7/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A560", + "url": "https://www.mcmaster.com/91263A560/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "1/4-20 x 1 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A562", + "url": "https://www.mcmaster.com/91263A562/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_1" + }, + "name": "1/4-20 x 1 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A562", + "url": "https://www.mcmaster.com/91263A562/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_125" + }, + "name": "1/4-20 x 1-1/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A166", + "url": "https://www.mcmaster.com/91263A166/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_1_125" + }, + "name": "1/4-20 x 1-1/8 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A166", + "url": "https://www.mcmaster.com/91263A166/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "1/4-20 x 1-1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A563", + "url": "https://www.mcmaster.com/91263A563/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_1_25" + }, + "name": "1/4-20 x 1-1/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A563", + "url": "https://www.mcmaster.com/91263A563/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_375" + }, + "name": "1/4-20 x 1-3/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "1/4-20 x 1-1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A564", + "url": "https://www.mcmaster.com/91263A564/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_1_5" + }, + "name": "1/4-20 x 1-1/2 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A564", + "url": "https://www.mcmaster.com/91263A564/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_625" + }, + "name": "1/4-20 x 1-5/8 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "1/4-20 x 1-3/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A565", + "url": "https://www.mcmaster.com/91263A565/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_1_75" + }, + "name": "1/4-20 x 1-3/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A565", + "url": "https://www.mcmaster.com/91263A565/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "1/4-20 x 2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A566", + "url": "https://www.mcmaster.com/91263A566/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_2" + }, + "name": "1/4-20 x 2 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A566", + "url": "https://www.mcmaster.com/91263A566/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_2_25" + }, + "name": "1/4-20 x 2-1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A567", + "url": "https://www.mcmaster.com/91263A567/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_2_25" + }, + "name": "1/4-20 x 2-1/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A567", + "url": "https://www.mcmaster.com/91263A567/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_2_5" + }, + "name": "1/4-20 x 2-1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A568", + "url": "https://www.mcmaster.com/91263A568/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_2_5" + }, + "name": "1/4-20 x 2-1/2 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A568", + "url": "https://www.mcmaster.com/91263A568/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_2_75" + }, + "name": "1/4-20 x 2-3/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A569", + "url": "https://www.mcmaster.com/91263A569/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_2_75" + }, + "name": "1/4-20 x 2-3/4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A569", + "url": "https://www.mcmaster.com/91263A569/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_3" + }, + "name": "1/4-20 x 3 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A570", + "url": "https://www.mcmaster.com/91263A570/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_3" + }, + "name": "1/4-20 x 3 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A570", + "url": "https://www.mcmaster.com/91263A570/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_3_25" + }, + "name": "1/4-20 x 3-1/4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_3_5" + }, + "name": "1/4-20 x 3-1/2 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A169", + "url": "https://www.mcmaster.com/91263A169/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_3_5" + }, + "name": "1/4-20 x 3-1/2 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A169", + "url": "https://www.mcmaster.com/91263A169/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_4" + }, + "name": "1/4-20 x 4 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "91263A172", + "url": "https://www.mcmaster.com/91263A172/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "IN_4" + }, + "name": "1/4-20 x 4 in Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A172", + "url": "https://www.mcmaster.com/91263A172/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_5" + }, + "name": "1/4-20 x 5 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "length": "IN_6" + }, + "name": "1/4-20 x 6 in Flat Head Screw", + "vendor": "McMaster-Carr", + "partNumber": "null", + "url": "https://www.mcmaster.com/null/", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2910-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2910-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_0_3125" + }, + "name": "#10-32 x 5/16 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2911-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2911-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2912-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2912-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2914-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2914-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2916-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2916-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2918-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2918-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2922-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2922-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2924-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2924-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2926-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2926-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_1_75" + }, + "name": "#10-32 x 1-3/4 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2928-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2928-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2930-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2930-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_2_25" + }, + "name": "#10-32 x 2-1/4 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2931-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2931-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_2_5" + }, + "name": "#10-32 x 2-1/2 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2932-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2932-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_2_75" + }, + "name": "#10-32 x 2-3/4 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2933-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2933-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_3" + }, + "name": "#10-32 x 3 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2934-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2934-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_3_5" + }, + "name": "#10-32 x 3-1/2 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2936-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2936-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "SOCKET", + "length": "IN_4" + }, + "name": "#10-32 x 4 in Socket Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2938-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2938-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2939-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2939-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_3125" + }, + "name": "#10-32 x 5/16 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2940-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2940-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2941-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2941-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Button Head Screw (Zinc plated)", + "vendor": "REV", + "partNumber": "REV-29-1221-PK100", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-1221-PK100§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2943-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2943-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Button Head Screw (Zinc plated)", + "vendor": "REV", + "partNumber": "REV-29-1222-PK100", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-1222-PK100§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2945-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2945-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2947-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2947-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2951-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2951-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2953-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2953-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2955-PK50", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2955-PK50§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_625" + }, + "name": "#10-32 x 1-5/8 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2956-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2956-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "#10-32 x 1-3/4 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2957-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2957-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2959-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2959-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_25" + }, + "name": "#10-32 x 2-1/4 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2960-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2960-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_5" + }, + "name": "#10-32 x 2-1/2 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2961-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2961-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_75" + }, + "name": "#10-32 x 2-3/4 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2962-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2962-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_3" + }, + "name": "#10-32 x 3 in Button Head Screw", + "vendor": "REV", + "partNumber": "REV-29-2963-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2963-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "head": "FLAT" + }, + "name": "#10-32 x 1/2 in Flat Head Screw (Zinc plated)", + "vendor": "REV", + "partNumber": "REV-29-1223-PK25", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-1223-PK25§ion=product", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_8_32", + "head": "SOCKET" + }, + "name": "#8-32 x 1 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-2249", + "url": "https://wcproducts.com/products/wcp-2249", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_25" + }, + "name": "#8-32 x 1/4 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-1548", + "url": "https://wcproducts.com/products/wcp-1548", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_8_32", + "head": "BUTTON", + "length": "IN_0_5" + }, + "name": "#8-32 x 1/2 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0250", + "url": "https://wcproducts.com/products/wcp-0250", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0264", + "url": "https://wcproducts.com/products/wcp-0264", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0265", + "url": "https://wcproducts.com/products/wcp-0265", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0266", + "url": "https://wcproducts.com/products/wcp-0266", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0267", + "url": "https://wcproducts.com/products/wcp-0267", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0268", + "url": "https://wcproducts.com/products/wcp-0268", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_75" + }, + "name": "#10-32 x 1-3/4 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-1549", + "url": "https://wcproducts.com/products/wcp-1549", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0269", + "url": "https://wcproducts.com/products/wcp-0269", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_2_5" + }, + "name": "#10-32 x 2-1/2 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0270", + "url": "https://wcproducts.com/products/wcp-0270", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_3" + }, + "name": "#10-32 x 3 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0271", + "url": "https://wcproducts.com/products/wcp-0271", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_3_5" + }, + "name": "#10-32 x 3-1/2 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0272", + "url": "https://wcproducts.com/products/wcp-0272", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_4" + }, + "name": "#10-32 x 4 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0273", + "url": "https://wcproducts.com/products/wcp-0273", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_4_5" + }, + "name": "#10-32 x 4-1/2 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0274", + "url": "https://wcproducts.com/products/wcp-0274", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_5" + }, + "name": "#10-32 x 5 in Socket Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0275", + "url": "https://wcproducts.com/products/wcp-0275", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0251", + "url": "https://wcproducts.com/products/wcp-0251", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ALUMINUM", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Button Head Screw (Aluminum)", + "vendor": "WCP", + "partNumber": "WCP-2110", + "url": "https://wcproducts.com/products/wcp-2110", + "material": "Aluminum - 6061" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0252", + "url": "https://wcproducts.com/products/wcp-0252", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ALUMINUM", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Button Head Screw (Aluminum)", + "vendor": "WCP", + "partNumber": "WCP-2111", + "url": "https://wcproducts.com/products/wcp-2111", + "material": "Aluminum - 6061" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0253", + "url": "https://wcproducts.com/products/wcp-0253", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ALUMINUM", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Button Head Screw (Aluminum)", + "vendor": "WCP", + "partNumber": "WCP-2112", + "url": "https://wcproducts.com/products/wcp-2112", + "material": "Aluminum - 6061" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0135", + "url": "https://wcproducts.com/products/wcp-0135", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_875" + }, + "name": "#10-32 x 7/8 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-1463", + "url": "https://wcproducts.com/products/wcp-1463", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0255", + "url": "https://wcproducts.com/products/wcp-0255", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0256", + "url": "https://wcproducts.com/products/wcp-0256", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0257", + "url": "https://wcproducts.com/products/wcp-0257", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "#10-32 x 1-3/4 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0258", + "url": "https://wcproducts.com/products/wcp-0258", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0259", + "url": "https://wcproducts.com/products/wcp-0259", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_25" + }, + "name": "#10-32 x 2-1/4 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0260", + "url": "https://wcproducts.com/products/wcp-0260", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_5" + }, + "name": "#10-32 x 2-1/2 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0261", + "url": "https://wcproducts.com/products/wcp-0261", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_75" + }, + "name": "#10-32 x 2-3/4 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0262", + "url": "https://wcproducts.com/products/wcp-0262", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_3" + }, + "name": "#10-32 x 3 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-0263", + "url": "https://wcproducts.com/products/wcp-0263", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_4_75" + }, + "name": "#10-32 x 4-3/4 in Button Head Screw", + "vendor": "WCP", + "partNumber": "WCP-1656", + "url": "https://wcproducts.com/products/wcp-1656", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_375" + }, + "name": "#4-40 x 3/8 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1032", + "url": "https://andymark.com/products/4-40-x-0-375-in-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_4_40", + "head": "SOCKET", + "length": "IN_0_5" + }, + "name": "#4-40 x 1/2 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1136", + "url": "https://andymark.com/products/4-40-x-0-5-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_4_40", + "head": "BUTTON" + }, + "name": "#4-40 x 1/4 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1679", + "url": "https://andymark.com/products/4-40-x-0-25-in-button-head-cap-screw-with-nylon-patch", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_4_40", + "head": "FLAT" + }, + "name": "#4-40 x 3/8 in Flat Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1586", + "url": "https://andymark.com/products/4-40-x-0-375-in-flat-head-cap-screw-with-nylon-patch", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_6_32", + "head": "SOCKET" + }, + "name": "#6-32 x 2-1/8 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1657", + "url": "https://andymark.com/products/6-32-x-2-125-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_6_32", + "head": "FLAT" + }, + "name": "#6-32 x 5/8 in Flat Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1570", + "url": "https://andymark.com/products/6-32-x-0-625-in-flat-head-socket-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_8_32" + }, + "name": "#8-32 x 1/2 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1691", + "url": "https://andymark.com/products/8-32-x-0-5-in-button-head-cap-screw-with-nylon-patch", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_25" + }, + "name": "#10-32 x 1/4 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1771", + "url": "https://andymark.com/products/10-32-x-250-in-socket-head-cap-screw-with-nylon-thread-lock-patch", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1359", + "url": "https://andymark.com/products/10-32-x-0-375-in-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1002", + "url": "https://andymark.com/products/10-32-x-0-5-in-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1007", + "url": "https://andymark.com/products/10-32-x-0-625-in-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1047", + "url": "https://andymark.com/products/10-32-x-0-75-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_0_875" + }, + "name": "#10-32 x 7/8 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1753", + "url": "https://andymark.com/products/10-32-x-0-875-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1056", + "url": "https://andymark.com/products/10-32-x-1-in-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_125" + }, + "name": "#10-32 x 1-1/8 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1013", + "url": "https://andymark.com/products/10-32-x-1-125-in-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1041", + "url": "https://andymark.com/products/10-32-x-1-25-in-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_375" + }, + "name": "#10-32 x 1-3/8 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1154", + "url": "https://andymark.com/products/10-32-x-1-375-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1014", + "url": "https://andymark.com/products/10-32-x-1-5-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_1_75" + }, + "name": "#10-32 x 1-3/4 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1048", + "url": "https://andymark.com/products/10-32-x-1-75-in-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1049", + "url": "https://andymark.com/products/10-32-x-2-in-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_2_25" + }, + "name": "#10-32 x 2-1/4 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1156", + "url": "https://andymark.com/products/10-32-x-2-25-in-socket-head-cap-screw-2", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_2_5" + }, + "name": "#10-32 x 2-1/2 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1024", + "url": "https://andymark.com/products/10-32-x-2-5-in-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_2_75" + }, + "name": "#10-32 x 2-3/4 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1397", + "url": "https://andymark.com/products/10-32-x-2-75-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_3" + }, + "name": "#10-32 x 3 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1522", + "url": "https://andymark.com/products/10-32-x-3-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_3_25" + }, + "name": "#10-32 x 3-1/4 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1258", + "url": "https://andymark.com/products/10-32-x-3-25-in-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "length": "IN_3_5" + }, + "name": "#10-32 x 3-1/2 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1402", + "url": "https://andymark.com/products/10-32-x-3-5-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_375" + }, + "name": "#10-32 x 3/8 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1588", + "url": "https://andymark.com/products/10-32-x-3-8-in-button-head-cap-screw-with-nylon-patch", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1512", + "url": "https://andymark.com/products/10-32-x-0-5-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1549", + "url": "https://andymark.com/products/10-32-x-0-625-in-button-head-cap-screw-with-nylon-patch", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1524", + "url": "https://andymark.com/products/10-32-x-0-75-in-hex-drive-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1396", + "url": "https://andymark.com/products/10-32-x-1-in-button-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_1_25" + }, + "name": "#10-32 x 1-1/4 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1260", + "url": "https://andymark.com/products/10-32-x-1-25-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1730", + "url": "https://andymark.com/products/10-32-x-1-5-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "BUTTON", + "length": "IN_1_75" + }, + "name": "#10-32 x 1-3/4 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1584", + "url": "https://andymark.com/products/10-32-x-1-75-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_5" + }, + "name": "#10-32 x 1/2 in Flat Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1404", + "url": "https://andymark.com/products/10-32-x-0-5-in-flat-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_625" + }, + "name": "#10-32 x 5/8 in Flat Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1252", + "url": "https://andymark.com/products/10-32-x-0-625-in-flat-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_0_75" + }, + "name": "#10-32 x 3/4 in Flat Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1170", + "url": "https://andymark.com/products/10-32-x-0-75-in-flat-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_1" + }, + "name": "#10-32 x 1 in Flat Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1324", + "url": "https://andymark.com/products/10-32-x-1-in-flat-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_1_5" + }, + "name": "#10-32 x 1-1/2 in Flat Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1756", + "url": "https://andymark.com/products/10-32-x-1-500-in-flat-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "FLAT", + "length": "IN_2" + }, + "name": "#10-32 x 2 in Flat Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1383", + "url": "https://andymark.com/products/10-32-x-2-in-flat-head-cap-screw-black-oxide", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_0_625" + }, + "name": "1/4-20 x 5/8 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1053", + "url": "https://andymark.com/products/1-4-20-x-0-625-in-hex-drive-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_1" + }, + "name": "1/4-20 x 1 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1341", + "url": "https://andymark.com/products/1-4-20-x-1-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_1_5" + }, + "name": "1/4-20 x 1-1/2 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1131", + "url": "https://andymark.com/products/1-4-20-x-1-5-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_1_75" + }, + "name": "1/4-20 x 1-3/4 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1058", + "url": "https://andymark.com/products/1-4-20-x-1-75-in-hex-drive-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_2" + }, + "name": "1/4-20 x 2 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1012", + "url": "https://andymark.com/products/1-4-20-x-2-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_2_5" + }, + "name": "1/4-20 x 2-1/2 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1031", + "url": "https://andymark.com/products/1-4-20-x-2-5-in-hex-drive-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_3" + }, + "name": "1/4-20 x 3 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1030", + "url": "https://andymark.com/products/1-4-20-x-3-in-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "SOCKET", + "length": "IN_3_25" + }, + "name": "1/4-20 x 3-1/4 in Socket Head Screw", + "vendor": "AndyMark", + "partNumber": "am-3338", + "url": "https://andymark.com/products/1-4-20-x-3-25-in-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_375" + }, + "name": "1/4-20 x 3/8 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1520", + "url": "https://andymark.com/products/1-4-20-x-0-375-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_5" + }, + "name": "1/4-20 x 1/2 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1039", + "url": "https://andymark.com/products/1-4-20-x-0-5-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_625" + }, + "name": "1/4-20 x 5/8 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1681", + "url": "https://andymark.com/products/1-4-20-x-0-625-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED" + }, + "name": "1/4-20 x 3/4 in Button Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1754", + "url": "https://andymark.com/products/screw-bhcs-1-4-20-x-750-zinc", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1" + }, + "name": "1/4-20 x 1 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1525", + "url": "https://andymark.com/products/1-4-20-x-1-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_25" + }, + "name": "1/4-20 x 1-1/4 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1183", + "url": "https://andymark.com/products/1-4-20-x-1-25-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_5" + }, + "name": "1/4-20 x 1-1/2 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1118", + "url": "https://andymark.com/products/1-4-20-x-1-5-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_1_75" + }, + "name": "1/4-20 x 1-3/4 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1420", + "url": "https://andymark.com/products/1-4-20-x-1-75-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2" + }, + "name": "1/4-20 x 2 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1655", + "url": "https://andymark.com/products/1-4-20-x-2-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_2_5" + }, + "name": "1/4-20 x 2-1/2 in Button Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1695", + "url": "https://andymark.com/products/1-4-20-x-2-5-in-button-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_0_75" + }, + "name": "1/4-20 x 3/4 in Flat Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1672", + "url": "https://andymark.com/products/1-4-20-x-0-75-in-flat-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "FLAT", + "length": "IN_2" + }, + "name": "1/4-20 x 2 in Flat Head Screw", + "vendor": "AndyMark", + "partNumber": "am-1707", + "url": "https://andymark.com/products/1-4-20-x-2-in-flat-head-cap-screw", + "material": "Steel" + } + ] + }, + "nut": { + "feature": "fastenerNut", + "mateConnector": "mateConnector", + "configuration": { + "btType": "BTConfigurationUpdateCall-2933", + "configurationParameters": [ + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "size", + "parameterName": "Size", + "enumName": "size_conf", + "namespace": "", + "defaultValue": "NO_10_32", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "NO_4_40", + "optionName": "#4-40" + }, + { + "btType": "BTMEnumOption-592", + "option": "NO_6_32", + "optionName": "#6-32" + }, + { + "btType": "BTMEnumOption-592", + "option": "NO_8_32", + "optionName": "#8-32" + }, + { + "btType": "BTMEnumOption-592", + "option": "NO_10_32", + "optionName": "#10-32" + }, + { + "btType": "BTMEnumOption-592", + "option": "QUARTER_20", + "optionName": "1/4-20" + } + ] + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "type", + "parameterName": "Type", + "enumName": "type_conf", + "namespace": "", + "defaultValue": "NYLOCK", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "NYLOCK", + "optionName": "Nylock" + }, + { + "btType": "BTMEnumOption-592", + "option": "THIN_NYLOCK", + "optionName": "Thin nylock" + }, + { + "btType": "BTMEnumOption-592", + "option": "HEX", + "optionName": "Hex" + }, + { + "btType": "BTMEnumOption-592", + "option": "THIN_HEX", + "optionName": "Thin hex" + }, + { + "btType": "BTMEnumOption-592", + "option": "SQUARE", + "optionName": "Square" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "THIN_HEX" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "SQUARE" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "NYLOCK", + "THIN_NYLOCK", + "HEX" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityAlwaysShown-5487" + } + ] + } + } + ] + } + } + ] + }, + "location": null, + "records": [ + { + "values": { + "size": "NO_4_40", + "type": "NYLOCK" + }, + "name": "#4-40 Nylock Nut", + "vendor": "McMaster-Carr", + "partNumber": "90631A005", + "url": "https://www.mcmaster.com/90631A005/", + "material": "Steel" + }, + { + "values": { + "size": "NO_4_40", + "type": "THIN_NYLOCK" + }, + "name": "#4-40 Thin Nylock Nut", + "vendor": "McMaster-Carr", + "partNumber": "90633A005", + "url": "https://www.mcmaster.com/90633A005/", + "material": "Steel" + }, + { + "values": { + "size": "NO_4_40", + "type": "HEX" + }, + "name": "#4-40 Hex Nut", + "vendor": "McMaster-Carr", + "partNumber": "90480A005", + "url": "https://www.mcmaster.com/90480A005/", + "material": "Steel" + }, + { + "values": { + "size": "NO_4_40", + "type": "THIN_HEX" + }, + "name": "#4-40 Thin Hex Nut", + "vendor": "McMaster-Carr", + "partNumber": "90760A005", + "url": "https://www.mcmaster.com/90760A005/", + "material": "Steel" + }, + { + "values": { + "size": "NO_6_32", + "type": "NYLOCK" + }, + "name": "#6-32 Nylock Nut", + "vendor": "McMaster-Carr", + "partNumber": "90631A007", + "material": "Steel" + }, + { + "values": { + "size": "NO_6_32", + "type": "THIN_NYLOCK" + }, + "name": "#6-32 Thin Nylock Nut", + "vendor": "McMaster-Carr", + "partNumber": "90633A007", + "material": "Steel" + }, + { + "values": { + "size": "NO_6_32", + "type": "HEX" + }, + "name": "#6-32 Hex Nut", + "vendor": "McMaster-Carr", + "partNumber": "90480A007", + "material": "Steel" + }, + { + "values": { + "size": "NO_6_32", + "type": "THIN_HEX" + }, + "name": "#6-32 Thin Hex Nut", + "vendor": "McMaster-Carr", + "partNumber": "90760A007", + "material": "Steel" + }, + { + "values": { + "size": "NO_8_32", + "type": "NYLOCK" + }, + "name": "#8-32 Nylock Nut", + "vendor": "McMaster-Carr", + "partNumber": "90631A009", + "url": "https://www.mcmaster.com/90631A009/", + "material": "Steel" + }, + { + "values": { + "size": "NO_8_32", + "type": "THIN_NYLOCK" + }, + "name": "#8-32 Thin Nylock Nut", + "vendor": "McMaster-Carr", + "partNumber": "90633A009", + "url": "https://www.mcmaster.com/90633A009/", + "material": "Steel" + }, + { + "values": { + "size": "NO_8_32", + "type": "HEX" + }, + "name": "#8-32 Hex Nut", + "vendor": "McMaster-Carr", + "partNumber": "90480A009", + "url": "https://www.mcmaster.com/90480A009/", + "material": "Steel" + }, + { + "values": { + "size": "NO_8_32", + "type": "SQUARE" + }, + "name": "#8-32 Square Nut", + "vendor": "McMaster-Carr", + "partNumber": "94855A216", + "url": "https://www.mcmaster.com/94855A216/", + "material": "Steel" + }, + { + "values": { + "size": "NO_10_32", + "type": "NYLOCK" + }, + "name": "#10-32 Nylock Nut", + "vendor": "McMaster-Carr", + "partNumber": "90631A411", + "url": "https://www.mcmaster.com/90631A411/", + "material": "Steel" + }, + { + "values": { + "size": "NO_10_32", + "type": "THIN_NYLOCK" + }, + "name": "#10-32 Thin Nylock Nut", + "vendor": "McMaster-Carr", + "partNumber": "90633A411", + "url": "https://www.mcmaster.com/90633A411/", + "material": "Steel" + }, + { + "values": { + "size": "NO_10_32", + "type": "HEX" + }, + "name": "#10-32 Hex Nut", + "vendor": "McMaster-Carr", + "partNumber": "90480A195", + "url": "https://www.mcmaster.com/90480A195/", + "material": "Steel" + }, + { + "values": { + "size": "NO_10_32", + "type": "SQUARE" + }, + "name": "#10-32 Square Nut", + "vendor": "McMaster-Carr", + "partNumber": "94855A283", + "url": "https://www.mcmaster.com/94855A283/", + "material": "Steel" + }, + { + "values": { + "size": "QUARTER_20", + "type": "NYLOCK" + }, + "name": "1/4-20 Nylock Nut", + "vendor": "McMaster-Carr", + "partNumber": "90640A129", + "url": "https://www.mcmaster.com/90640A129/", + "material": "Steel" + }, + { + "values": { + "size": "QUARTER_20", + "type": "THIN_NYLOCK" + }, + "name": "1/4-20 Thin Nylock Nut", + "vendor": "McMaster-Carr", + "partNumber": "90566A029", + "url": "https://www.mcmaster.com/90566A029/", + "material": "Steel" + }, + { + "values": { + "size": "QUARTER_20", + "type": "HEX" + }, + "name": "1/4-20 Hex Nut", + "vendor": "McMaster-Carr", + "partNumber": "90494A029", + "url": "https://www.mcmaster.com/90494A029/", + "material": "Steel" + }, + { + "values": { + "size": "QUARTER_20", + "type": "SQUARE" + }, + "name": "1/4-20 Square Nut", + "vendor": "McMaster-Carr", + "partNumber": "90043A029", + "url": "https://www.mcmaster.com/90043A029/", + "material": "Steel" + } + ] + }, + "washer": { + "feature": "fastenerWasher", + "mateConnector": "mateConnector", + "configuration": { + "btType": "BTConfigurationUpdateCall-2933", + "configurationParameters": [ + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "vendor", + "parameterName": "Vendor", + "enumName": "vendor_conf", + "namespace": "", + "defaultValue": "MCMASTER", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "GENERIC", + "optionName": "Generic" + }, + { + "btType": "BTMEnumOption-592", + "option": "MCMASTER", + "optionName": "McMaster-Carr" + }, + { + "btType": "BTMEnumOption-592", + "option": "WCP", + "optionName": "WCP" + }, + { + "btType": "BTMEnumOption-592", + "option": "ANDYMARK", + "optionName": "AndyMark" + } + ] + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "size", + "parameterName": "Size", + "enumName": "size_conf", + "namespace": "", + "defaultValue": "NO_10_32", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "NO_4_40", + "optionName": "#4-40" + }, + { + "btType": "BTMEnumOption-592", + "option": "NO_6_32", + "optionName": "#6-32" + }, + { + "btType": "BTMEnumOption-592", + "option": "NO_8_32", + "optionName": "#8-32" + }, + { + "btType": "BTMEnumOption-592", + "option": "NO_10_32", + "optionName": "#10-32" + }, + { + "btType": "BTMEnumOption-592", + "option": "QUARTER_20", + "optionName": "1/4-20" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "NO_4_40", + "NO_8_32" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "NO_6_32" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "NO_10_32", + "QUARTER_20" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityAlwaysShown-5487" + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "type", + "parameterName": "Type", + "enumName": "type_conf", + "namespace": "", + "defaultValue": "OD_7_16_X_0_03", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "OD_5_16_X_0_03", + "optionName": "5/16 in OD x 0.03 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "OD_3_8_X_0_012", + "optionName": "3/8 in OD x 0.012 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "OD_3_8_X_0_03", + "optionName": "3/8 in OD x 0.03 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "OD_3_8_X_0_031", + "optionName": "3/8 in OD x 0.031 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "OD_7_16_X_0_03", + "optionName": "7/16 in OD x 0.03 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "OD_1_2_X_0_04", + "optionName": "1/2 in OD x 0.04 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "OD_5_8_X_0_031", + "optionName": "5/8 in OD x 0.031 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "OD_5_8_X_0_063", + "optionName": "5/8 in OD x 0.063 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "OD_3_4_X_0_062", + "optionName": "3/4 in OD x 0.062 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "OD_1_X_0_062", + "optionName": "1 in OD x 0.062 in" + }, + { + "btType": "BTMEnumOption-592", + "option": "OD_3_X_0_06", + "optionName": "3 in OD x 0.06 in" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "OD_5_16_X_0_03", + "OD_3_8_X_0_03" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_6_32", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "OD_3_8_X_0_012", + "OD_3_8_X_0_031" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "WCP", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "OD_7_16_X_0_03", + "OD_1_2_X_0_04" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "OD_5_8_X_0_031" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "WCP", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "OD_5_8_X_0_063", + "OD_3_X_0_06" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "OD_3_4_X_0_062" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "OD_1_X_0_062" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "finish", + "parameterName": "Finish", + "enumName": "finish_conf", + "namespace": "", + "defaultValue": "STAINLESS", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "BLACK", + "optionName": "Black" + }, + { + "btType": "BTMEnumOption-592", + "option": "STAINLESS", + "optionName": "Stainless steel" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "BLACK", + "STAINLESS" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_4_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_8_32", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "QUARTER_20", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "BLACK", + "STAINLESS" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "NO_10_32", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "type", + "value": "OD_7_16_X_0_03", + "inArray": false + } + ] + } + ] + } + } + ] + } + } + ] + }, + "location": null, + "records": [ + { + "values": { + "vendor": "GENERIC", + "size": "NO_4_40" + }, + "name": "#4 Washer (5/16 in OD x 0.032 in)", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_6_32" + }, + "name": "#6 Washer (3/8 in OD x 0.049 in)", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_8_32" + }, + "name": "#8 Washer (7/16 in OD x 0.049 in)", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "NO_10_32" + }, + "name": "#10 Washer (1/2 in OD x 0.049 in)", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "QUARTER_20" + }, + "name": "1/4 in Washer (5/8 in OD x 0.065 in)", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "finish": "BLACK" + }, + "name": "#4 Washer (5/16 in OD x 0.03 in)", + "vendor": "McMaster-Carr", + "partNumber": "96765A110", + "url": "https://www.mcmaster.com/96765A110/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_4_40", + "finish": "STAINLESS" + }, + "name": "#4 Washer (5/16 in OD x 0.03 in, Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92141A005", + "url": "https://www.mcmaster.com/92141A005/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "type": "OD_5_16_X_0_03" + }, + "name": "#6 Washer (5/16 in OD x 0.03 in, Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92141A008", + "url": "https://www.mcmaster.com/92141A008/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_6_32", + "type": "OD_3_8_X_0_03" + }, + "name": "#6 Washer (3/8 in OD x 0.03 in)", + "vendor": "McMaster-Carr", + "partNumber": "96765A115", + "url": "https://www.mcmaster.com/96765A115/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "finish": "BLACK" + }, + "name": "#8 Washer (3/8 in OD x 0.03 in)", + "vendor": "McMaster-Carr", + "partNumber": "96765A120", + "url": "https://www.mcmaster.com/96765A120/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_8_32", + "finish": "STAINLESS" + }, + "name": "#8 Washer (3/8 in OD x 0.03 in, Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92141A009", + "url": "https://www.mcmaster.com/92141A009/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "type": "OD_7_16_X_0_03", + "finish": "BLACK" + }, + "name": "#10 Washer (7/16 in OD x 0.03 in)", + "vendor": "McMaster-Carr", + "partNumber": "96765A125", + "url": "https://www.mcmaster.com/96765A125/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "type": "OD_7_16_X_0_03", + "finish": "STAINLESS" + }, + "name": "#10 Washer (7/16 in OD x 0.03 in, Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92141A011", + "url": "https://www.mcmaster.com/92141A011/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "NO_10_32", + "type": "OD_1_2_X_0_04" + }, + "name": "#10 Washer (1/2 in OD x 0.04 in)", + "vendor": "McMaster-Carr", + "partNumber": "90377A123", + "url": "https://www.mcmaster.com/90377A123/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "finish": "BLACK" + }, + "name": "1/4 in Washer (5/8 in OD x 0.05 in)", + "vendor": "McMaster-Carr", + "partNumber": "96765A140", + "url": "https://www.mcmaster.com/96765A140/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "finish": "STAINLESS" + }, + "name": "1/4 in Washer (5/8 in OD x 0.05 in, Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92141A029", + "url": "https://www.mcmaster.com/92141A029/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "type": "OD_3_8_X_0_012" + }, + "name": "#10 Washer (3/8 in OD x 0.012 in)", + "vendor": "WCP", + "partNumber": "WCP-0038", + "url": "https://wcproducts.com/products/wcp-0038", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "type": "OD_3_8_X_0_031" + }, + "name": "#10 Washer (3/8 in OD x 0.031 in)", + "vendor": "WCP", + "partNumber": "WCP-0197", + "url": "https://wcproducts.com/products/wcp-0197", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "NO_10_32", + "type": "OD_5_8_X_0_031" + }, + "name": "#10 Washer (5/8 in OD x 0.031 in)", + "vendor": "WCP", + "partNumber": "WCP-0523", + "url": "https://wcproducts.com/products/wcp-0523", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "QUARTER_20", + "type": "OD_3_8_X_0_012" + }, + "name": "1/4 in Washer (3/8 in OD x 0.012 in)", + "vendor": "WCP", + "partNumber": "WCP-0039", + "url": "https://wcproducts.com/products/wcp-0039", + "material": "Steel" + }, + { + "values": { + "vendor": "WCP", + "size": "QUARTER_20", + "type": "OD_3_8_X_0_031" + }, + "name": "1/4 in Washer (3/8 in OD x 0.031 in)", + "vendor": "WCP", + "partNumber": "WCP-0198", + "url": "https://wcproducts.com/products/wcp-0198", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_6_32" + }, + "name": "#6 Washer (5/8 in OD x 0.031 in, Stainless steel)", + "vendor": "AndyMark", + "partNumber": "am-1658", + "url": "https://andymark.com/products/6-x-0-625-in-od-fender-washer", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "type": "OD_3_4_X_0_062" + }, + "name": "#10 Washer (3/4 in OD x 0.062 in, Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1523", + "url": "https://andymark.com/products/10-x-0-75-in-fender-washer", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "type": "OD_1_X_0_062" + }, + "name": "#10 Washer (1 in OD x 0.062 in, Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1575", + "url": "https://andymark.com/products/10-x-1-in-fender-washer", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "type": "OD_5_8_X_0_063" + }, + "name": "1/4 in Washer (5/8 in OD x 0.063 in, Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1027", + "url": "https://andymark.com/products/1-4-in-flat-washer", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "type": "OD_1_X_0_062" + }, + "name": "1/4 in Washer (1 in OD x 0.062 in, Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1421", + "url": "https://andymark.com/products/1-4-in-x-1-in-fender-washer", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "type": "OD_3_X_0_06" + }, + "name": "1/4 in Washer (3 in OD x 0.06 in, Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1628", + "url": "https://andymark.com/products/1-4-in-id-3-in-od-fender-washer", + "material": "Steel" + } + ] + } + }, + "vendors": [ + { + "id": "GENERIC", + "name": "Generic" + }, + { + "id": "MCMASTER", + "name": "McMaster-Carr" + }, + { + "id": "REV", + "name": "REV" + }, + { + "id": "WCP", + "name": "WCP" + }, + { + "id": "ANDYMARK", + "name": "AndyMark" + } + ], + "sizes": [ + { + "id": "NO_4_40", + "name": "#4-40", + "majorDiameter": 0.0028448, + "pitch": 0.000635, + "tapDrillDiameter": 0.0022606, + "closeClearanceDiameter": 0.0029464, + "freeClearanceDiameter": 0.0032639 + }, + { + "id": "NO_6_32", + "name": "#6-32", + "majorDiameter": 0.0035052, + "pitch": 0.00079375, + "tapDrillDiameter": 0.0027051, + "closeClearanceDiameter": 0.0036576, + "freeClearanceDiameter": 0.0037973 + }, + { + "id": "NO_8_32", + "name": "#8-32", + "majorDiameter": 0.0041656, + "pitch": 0.00079375, + "tapDrillDiameter": 0.0034544, + "closeClearanceDiameter": 0.0043053, + "freeClearanceDiameter": 0.0044958 + }, + { + "id": "NO_10_32", + "name": "#10-32", + "majorDiameter": 0.004826, + "pitch": 0.00079375, + "tapDrillDiameter": 0.0040386, + "closeClearanceDiameter": 0.0049784, + "freeClearanceDiameter": 0.0051054 + }, + { + "id": "QUARTER_20", + "name": "1/4-20", + "majorDiameter": 0.00635, + "pitch": 0.00127, + "tapDrillDiameter": 0.0051054, + "closeClearanceDiameter": 0.0065278, + "freeClearanceDiameter": 0.0067564 + } + ], + "heads": [ + { + "id": "SOCKET", + "name": "Socket head", + "sizes": { + "NO_4_40": { + "diameter": 0.0046482, + "height": 0.0028448, + "countersunk": false + }, + "NO_6_32": { + "diameter": 0.0057404, + "height": 0.0035052, + "countersunk": false + }, + "NO_8_32": { + "diameter": 0.006858, + "height": 0.0041656, + "countersunk": false + }, + "NO_10_32": { + "diameter": 0.0079248, + "height": 0.004826, + "countersunk": false + }, + "QUARTER_20": { + "diameter": 0.009525, + "height": 0.00635, + "countersunk": false + } + } + }, + { + "id": "BUTTON", + "name": "Button head", + "sizes": { + "NO_4_40": { + "diameter": 0.0054102, + "height": 0.0014986, + "countersunk": false + }, + "NO_6_32": { + "diameter": 0.0066548, + "height": 0.0018796, + "countersunk": false + }, + "NO_8_32": { + "diameter": 0.0079248, + "height": 0.0022098, + "countersunk": false + }, + "NO_10_32": { + "diameter": 0.009525, + "height": 0.0025908, + "countersunk": false + }, + "QUARTER_20": { + "diameter": 0.0110998, + "height": 0.0033528, + "countersunk": false + } + } + }, + { + "id": "FLAT", + "name": "Flat head", + "sizes": { + "NO_4_40": { + "diameter": 0.006477, + "height": 0.0021082, + "countersunk": true + }, + "NO_6_32": { + "diameter": 0.0077978, + "height": 0.0024638, + "countersunk": true + }, + "NO_8_32": { + "diameter": 0.0091186, + "height": 0.002921, + "countersunk": true + }, + "NO_10_32": { + "diameter": 0.0104394, + "height": 0.0033528, + "countersunk": true + }, + "QUARTER_20": { + "diameter": 0.0134874, + "height": 0.0038862, + "countersunk": true + } + } + } + ], + "screws": [ + { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_09375", + "name": "3/32 in", + "length": 0.00238125, + "fullThreadChoice": false + }, + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_09375", + "name": "3/32 in", + "length": 0.00238125, + "fullThreadChoice": false + }, + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_1_875", + "name": "1-7/8 in", + "length": 0.047625, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_125", + "name": "2-1/8 in", + "length": 0.053975, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_09375", + "name": "3/32 in", + "length": 0.00238125, + "fullThreadChoice": false + }, + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_6875", + "name": "11/16 in", + "length": 0.0174625, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_1_875", + "name": "1-7/8 in", + "length": 0.047625, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_25", + "name": "3-1/4 in", + "length": 0.08255, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_3_75", + "name": "3-3/4 in", + "length": 0.09525, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + }, + { + "id": "IN_4_5", + "name": "4-1/2 in", + "length": 0.1143, + "fullThreadChoice": false + }, + { + "id": "IN_5", + "name": "5 in", + "length": 0.127, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_6875", + "name": "11/16 in", + "length": 0.0174625, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_1_875", + "name": "1-7/8 in", + "length": 0.047625, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_25", + "name": "3-1/4 in", + "length": 0.08255, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_3_75", + "name": "3-3/4 in", + "length": 0.09525, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + }, + { + "id": "IN_4_5", + "name": "4-1/2 in", + "length": 0.1143, + "fullThreadChoice": false + }, + { + "id": "IN_5", + "name": "5 in", + "length": 0.127, + "fullThreadChoice": false + }, + { + "id": "IN_5_5", + "name": "5-1/2 in", + "length": 0.1397, + "fullThreadChoice": false + }, + { + "id": "IN_6", + "name": "6 in", + "length": 0.1524, + "fullThreadChoice": false + }, + { + "id": "IN_6_5", + "name": "6-1/2 in", + "length": 0.1651, + "fullThreadChoice": false + }, + { + "id": "IN_7", + "name": "7 in", + "length": 0.1778, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_4_75", + "name": "4-3/4 in", + "length": 0.12065, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_6875", + "name": "11/16 in", + "length": 0.0174625, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_1_875", + "name": "1-7/8 in", + "length": 0.047625, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_375", + "name": "2-3/8 in", + "length": 0.060325, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_625", + "name": "2-5/8 in", + "length": 0.066675, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_25", + "name": "3-1/4 in", + "length": 0.08255, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_3_75", + "name": "3-3/4 in", + "length": 0.09525, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + }, + { + "id": "IN_4_25", + "name": "4-1/4 in", + "length": 0.10795, + "fullThreadChoice": false + }, + { + "id": "IN_4_5", + "name": "4-1/2 in", + "length": 0.1143, + "fullThreadChoice": false + }, + { + "id": "IN_5", + "name": "5 in", + "length": 0.127, + "fullThreadChoice": false + }, + { + "id": "IN_5_25", + "name": "5-1/4 in", + "length": 0.13335, + "fullThreadChoice": false + }, + { + "id": "IN_5_5", + "name": "5-1/2 in", + "length": 0.1397, + "fullThreadChoice": false + }, + { + "id": "IN_5_75", + "name": "5-3/4 in", + "length": 0.14605, + "fullThreadChoice": false + }, + { + "id": "IN_6", + "name": "6 in", + "length": 0.1524, + "fullThreadChoice": false + }, + { + "id": "IN_6_25", + "name": "6-1/4 in", + "length": 0.15875, + "fullThreadChoice": false + }, + { + "id": "IN_6_5", + "name": "6-1/2 in", + "length": 0.1651, + "fullThreadChoice": false + }, + { + "id": "IN_7", + "name": "7 in", + "length": 0.1778, + "fullThreadChoice": false + }, + { + "id": "IN_7_5", + "name": "7-1/2 in", + "length": 0.1905, + "fullThreadChoice": false + }, + { + "id": "IN_8", + "name": "8 in", + "length": 0.2032, + "fullThreadChoice": false + }, + { + "id": "IN_8_5", + "name": "8-1/2 in", + "length": 0.2159, + "fullThreadChoice": false + }, + { + "id": "IN_9", + "name": "9 in", + "length": 0.2286, + "fullThreadChoice": false + }, + { + "id": "IN_10", + "name": "10 in", + "length": 0.254, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_25", + "name": "3-1/4 in", + "length": 0.08255, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_25", + "name": "3-1/4 in", + "length": 0.08255, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + }, + { + "id": "IN_5", + "name": "5 in", + "length": 0.127, + "fullThreadChoice": false + }, + { + "id": "IN_6", + "name": "6 in", + "length": 0.1524, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_09375", + "name": "3/32 in", + "length": 0.00238125, + "fullThreadChoice": false + }, + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": true + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_4_40", + "head": "FLAT", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_09375", + "name": "3/32 in", + "length": 0.00238125, + "fullThreadChoice": false + }, + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": true + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_1_875", + "name": "1-7/8 in", + "length": 0.047625, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_875", + "name": "1-7/8 in", + "length": 0.047625, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": true + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_6_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_09375", + "name": "3/32 in", + "length": 0.00238125, + "fullThreadChoice": false + }, + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_6875", + "name": "11/16 in", + "length": 0.0174625, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": true + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": true + }, + { + "id": "IN_1_875", + "name": "1-7/8 in", + "length": 0.047625, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": true + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": true + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": true + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": true + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": true + }, + { + "id": "IN_3_25", + "name": "3-1/4 in", + "length": 0.08255, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_3_75", + "name": "3-3/4 in", + "length": 0.09525, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + }, + { + "id": "IN_4_5", + "name": "4-1/2 in", + "length": 0.1143, + "fullThreadChoice": false + }, + { + "id": "IN_5", + "name": "5 in", + "length": 0.127, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_8_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_15625", + "name": "5/32 in", + "length": 0.00396875, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_6875", + "name": "11/16 in", + "length": 0.0174625, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": true + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": true + }, + { + "id": "IN_1_875", + "name": "1-7/8 in", + "length": 0.047625, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": true + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": true + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": true + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": true + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": true + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": true + }, + { + "id": "IN_3_75", + "name": "3-3/4 in", + "length": 0.09525, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + }, + { + "id": "IN_4_5", + "name": "4-1/2 in", + "length": 0.1143, + "fullThreadChoice": false + }, + { + "id": "IN_5", + "name": "5 in", + "length": 0.127, + "fullThreadChoice": false + }, + { + "id": "IN_5_5", + "name": "5-1/2 in", + "length": 0.1397, + "fullThreadChoice": false + }, + { + "id": "IN_6", + "name": "6 in", + "length": 0.1524, + "fullThreadChoice": false + }, + { + "id": "IN_6_5", + "name": "6-1/2 in", + "length": 0.1651, + "fullThreadChoice": false + }, + { + "id": "IN_7", + "name": "7 in", + "length": 0.1778, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_125", + "name": "1/8 in", + "length": 0.003175, + "fullThreadChoice": false + }, + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_6875", + "name": "11/16 in", + "length": 0.0174625, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_1_875", + "name": "1-7/8 in", + "length": 0.047625, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_375", + "name": "2-3/8 in", + "length": 0.060325, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_625", + "name": "2-5/8 in", + "length": 0.066675, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_25", + "name": "3-1/4 in", + "length": 0.08255, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_3_75", + "name": "3-3/4 in", + "length": 0.09525, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + }, + { + "id": "IN_4_25", + "name": "4-1/4 in", + "length": 0.10795, + "fullThreadChoice": false + }, + { + "id": "IN_4_5", + "name": "4-1/2 in", + "length": 0.1143, + "fullThreadChoice": false + }, + { + "id": "IN_5", + "name": "5 in", + "length": 0.127, + "fullThreadChoice": false + }, + { + "id": "IN_5_25", + "name": "5-1/4 in", + "length": 0.13335, + "fullThreadChoice": false + }, + { + "id": "IN_5_5", + "name": "5-1/2 in", + "length": 0.1397, + "fullThreadChoice": false + }, + { + "id": "IN_5_75", + "name": "5-3/4 in", + "length": 0.14605, + "fullThreadChoice": false + }, + { + "id": "IN_6", + "name": "6 in", + "length": 0.1524, + "fullThreadChoice": false + }, + { + "id": "IN_6_25", + "name": "6-1/4 in", + "length": 0.15875, + "fullThreadChoice": false + }, + { + "id": "IN_6_5", + "name": "6-1/2 in", + "length": 0.1651, + "fullThreadChoice": false + }, + { + "id": "IN_7", + "name": "7 in", + "length": 0.1778, + "fullThreadChoice": false + }, + { + "id": "IN_7_5", + "name": "7-1/2 in", + "length": 0.1905, + "fullThreadChoice": false + }, + { + "id": "IN_8", + "name": "8 in", + "length": 0.2032, + "fullThreadChoice": false + }, + { + "id": "IN_8_5", + "name": "8-1/2 in", + "length": 0.2159, + "fullThreadChoice": false + }, + { + "id": "IN_9", + "name": "9 in", + "length": 0.2286, + "fullThreadChoice": false + }, + { + "id": "IN_10", + "name": "10 in", + "length": 0.254, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_1_875", + "name": "1-7/8 in", + "length": 0.047625, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_25", + "name": "3-1/4 in", + "length": 0.08255, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_3_75", + "name": "3-3/4 in", + "length": 0.09525, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + }, + { + "id": "IN_4_5", + "name": "4-1/2 in", + "length": 0.1143, + "fullThreadChoice": false + }, + { + "id": "IN_5", + "name": "5 in", + "length": 0.127, + "fullThreadChoice": false + }, + { + "id": "IN_5_5", + "name": "5-1/2 in", + "length": 0.1397, + "fullThreadChoice": false + }, + { + "id": "IN_6", + "name": "6 in", + "length": 0.1524, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_1875", + "name": "3/16 in", + "length": 0.0047625, + "fullThreadChoice": false + }, + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_25", + "name": "3-1/4 in", + "length": 0.08255, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_4375", + "name": "7/16 in", + "length": 0.0111125, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_5625", + "name": "9/16 in", + "length": 0.0142875, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_25", + "name": "3-1/4 in", + "length": 0.08255, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + }, + { + "id": "IN_5", + "name": "5 in", + "length": 0.127, + "fullThreadChoice": false + }, + { + "id": "IN_6", + "name": "6 in", + "length": 0.1524, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "REV", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "REV", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_3125", + "name": "5/16 in", + "length": 0.0079375, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_625", + "name": "1-5/8 in", + "length": 0.041275, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "REV", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "REV", + "size": "NO_10_32", + "head": "FLAT", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "WCP", + "size": "NO_8_32", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "WCP", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "WCP", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + }, + { + "id": "IN_4", + "name": "4 in", + "length": 0.1016, + "fullThreadChoice": false + }, + { + "id": "IN_4_5", + "name": "4-1/2 in", + "length": 0.1143, + "fullThreadChoice": false + }, + { + "id": "IN_5", + "name": "5 in", + "length": 0.127, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_4_75", + "name": "4-3/4 in", + "length": 0.12065, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "WCP", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "ALUMINUM", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "NO_4_40", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "NO_4_40", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "NO_4_40", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "NO_6_32", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_2_125", + "name": "2-1/8 in", + "length": 0.053975, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "NO_6_32", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "NO_8_32", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_25", + "name": "1/4 in", + "length": 0.00635, + "fullThreadChoice": false + }, + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_0_875", + "name": "7/8 in", + "length": 0.022225, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_125", + "name": "1-1/8 in", + "length": 0.028575, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_375", + "name": "1-3/8 in", + "length": 0.034925, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_25", + "name": "2-1/4 in", + "length": 0.05715, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_2_75", + "name": "2-3/4 in", + "length": 0.06985, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_25", + "name": "3-1/4 in", + "length": 0.08255, + "fullThreadChoice": false + }, + { + "id": "IN_3_5", + "name": "3-1/2 in", + "length": 0.0889, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + }, + { + "id": "IN_3", + "name": "3 in", + "length": 0.0762, + "fullThreadChoice": false + }, + { + "id": "IN_3_25", + "name": "3-1/4 in", + "length": 0.08255, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_375", + "name": "3/8 in", + "length": 0.009525, + "fullThreadChoice": false + }, + { + "id": "IN_0_5", + "name": "1/2 in", + "length": 0.0127, + "fullThreadChoice": false + }, + { + "id": "IN_0_625", + "name": "5/8 in", + "length": 0.015875, + "fullThreadChoice": false + }, + { + "id": "IN_1", + "name": "1 in", + "length": 0.0254, + "fullThreadChoice": false + }, + { + "id": "IN_1_25", + "name": "1-1/4 in", + "length": 0.03175, + "fullThreadChoice": false + }, + { + "id": "IN_1_5", + "name": "1-1/2 in", + "length": 0.0381, + "fullThreadChoice": false + }, + { + "id": "IN_1_75", + "name": "1-3/4 in", + "length": 0.04445, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + }, + { + "id": "IN_2_5", + "name": "2-1/2 in", + "length": 0.0635, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "IN_0_75", + "name": "3/4 in", + "length": 0.01905, + "fullThreadChoice": false + }, + { + "id": "IN_2", + "name": "2 in", + "length": 0.0508, + "fullThreadChoice": false + } + ] + } + ], + "nutTypes": [ + { + "id": "NYLOCK", + "name": "Nylock" + }, + { + "id": "THIN_NYLOCK", + "name": "Thin nylock" + }, + { + "id": "HEX", + "name": "Hex" + }, + { + "id": "THIN_HEX", + "name": "Thin hex" + }, + { + "id": "SQUARE", + "name": "Square" + } + ], + "nuts": [ + { + "vendor": "MCMASTER", + "size": "NO_4_40", + "type": "NYLOCK", + "acrossFlats": 0.00635, + "height": 0.0035814, + "partNumber": "90631A005", + "url": "https://www.mcmaster.com/90631A005/" + }, + { + "vendor": "MCMASTER", + "size": "NO_4_40", + "type": "THIN_NYLOCK", + "acrossFlats": 0.00635, + "height": 0.0027686, + "partNumber": "90633A005", + "url": "https://www.mcmaster.com/90633A005/" + }, + { + "vendor": "MCMASTER", + "size": "NO_4_40", + "type": "HEX", + "acrossFlats": 0.00635, + "height": 0.0023876, + "partNumber": "90480A005", + "url": "https://www.mcmaster.com/90480A005/" + }, + { + "vendor": "MCMASTER", + "size": "NO_4_40", + "type": "THIN_HEX", + "acrossFlats": 0.00635, + "height": 0.0016002, + "partNumber": "90760A005", + "url": "https://www.mcmaster.com/90760A005/" + }, + { + "vendor": "MCMASTER", + "size": "NO_6_32", + "type": "NYLOCK", + "acrossFlats": 0.0079375, + "height": 0.004365625, + "partNumber": "90631A007" + }, + { + "vendor": "MCMASTER", + "size": "NO_6_32", + "type": "THIN_NYLOCK", + "acrossFlats": 0.0079375, + "height": 0.003175, + "partNumber": "90633A007" + }, + { + "vendor": "MCMASTER", + "size": "NO_6_32", + "type": "HEX", + "acrossFlats": 0.0079375, + "height": 0.002778125, + "partNumber": "90480A007" + }, + { + "vendor": "MCMASTER", + "size": "NO_6_32", + "type": "THIN_HEX", + "acrossFlats": 0.00635, + "height": 0.00238125, + "partNumber": "90760A007" + }, + { + "vendor": "MCMASTER", + "size": "NO_8_32", + "type": "NYLOCK", + "acrossFlats": 0.00873125, + "height": 0.0051562, + "partNumber": "90631A009", + "url": "https://www.mcmaster.com/90631A009/" + }, + { + "vendor": "MCMASTER", + "size": "NO_8_32", + "type": "THIN_NYLOCK", + "acrossFlats": 0.00873125, + "height": 0.0035814, + "partNumber": "90633A009", + "url": "https://www.mcmaster.com/90633A009/" + }, + { + "vendor": "MCMASTER", + "size": "NO_8_32", + "type": "HEX", + "acrossFlats": 0.00873125, + "height": 0.003175, + "partNumber": "90480A009", + "url": "https://www.mcmaster.com/90480A009/" + }, + { + "vendor": "MCMASTER", + "size": "NO_8_32", + "type": "SQUARE", + "acrossFlats": 0.00873125, + "height": 0.003175, + "partNumber": "94855A216", + "url": "https://www.mcmaster.com/94855A216/" + }, + { + "vendor": "MCMASTER", + "size": "NO_10_32", + "type": "NYLOCK", + "acrossFlats": 0.009525, + "height": 0.005953125, + "partNumber": "90631A411", + "url": "https://www.mcmaster.com/90631A411/" + }, + { + "vendor": "MCMASTER", + "size": "NO_10_32", + "type": "THIN_NYLOCK", + "acrossFlats": 0.009525, + "height": 0.004365625, + "partNumber": "90633A411", + "url": "https://www.mcmaster.com/90633A411/" + }, + { + "vendor": "MCMASTER", + "size": "NO_10_32", + "type": "HEX", + "acrossFlats": 0.009525, + "height": 0.003175, + "partNumber": "90480A195", + "url": "https://www.mcmaster.com/90480A195/" + }, + { + "vendor": "MCMASTER", + "size": "NO_10_32", + "type": "SQUARE", + "acrossFlats": 0.009525, + "height": 0.003175, + "partNumber": "94855A283", + "url": "https://www.mcmaster.com/94855A283/" + }, + { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "type": "NYLOCK", + "acrossFlats": 0.0111125, + "height": 0.0079248, + "partNumber": "90640A129", + "url": "https://www.mcmaster.com/90640A129/" + }, + { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "type": "THIN_NYLOCK", + "acrossFlats": 0.0111125, + "height": 0.0051562, + "partNumber": "90566A029", + "url": "https://www.mcmaster.com/90566A029/" + }, + { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "type": "HEX", + "acrossFlats": 0.0111125, + "height": 0.0055626, + "partNumber": "90494A029", + "url": "https://www.mcmaster.com/90494A029/" + }, + { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "type": "SQUARE", + "acrossFlats": 0.0111125, + "height": 0.00555625, + "partNumber": "90043A029", + "url": "https://www.mcmaster.com/90043A029/" + } + ], + "washers": [ + { + "vendor": "GENERIC", + "size": "NO_4_40", + "type": "OD_5_16_X_0_032", + "name": "5/16 in OD x 0.032 in", + "innerDiameter": 0.003175, + "outerDiameter": 0.0079375, + "thickness": 0.0008128, + "finishes": [ + "BLACK" + ] + }, + { + "vendor": "GENERIC", + "size": "NO_6_32", + "type": "OD_3_8_X_0_049", + "name": "3/8 in OD x 0.049 in", + "innerDiameter": 0.0039624, + "outerDiameter": 0.009525, + "thickness": 0.0012446, + "finishes": [ + "BLACK" + ] + }, + { + "vendor": "GENERIC", + "size": "NO_8_32", + "type": "OD_7_16_X_0_049", + "name": "7/16 in OD x 0.049 in", + "innerDiameter": 0.0047752, + "outerDiameter": 0.0111125, + "thickness": 0.0012446, + "finishes": [ + "BLACK" + ] + }, + { + "vendor": "GENERIC", + "size": "NO_10_32", + "type": "OD_1_2_X_0_049", + "name": "1/2 in OD x 0.049 in", + "innerDiameter": 0.0055626, + "outerDiameter": 0.0127, + "thickness": 0.0012446, + "finishes": [ + "BLACK" + ] + }, + { + "vendor": "GENERIC", + "size": "QUARTER_20", + "type": "OD_5_8_X_0_065", + "name": "5/8 in OD x 0.065 in", + "innerDiameter": 0.0071374, + "outerDiameter": 0.015875, + "thickness": 0.001651, + "finishes": [ + "BLACK" + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_4_40", + "type": "OD_5_16_X_0_03", + "name": "5/16 in OD x 0.03 in", + "innerDiameter": 0.003175, + "outerDiameter": 0.0079375, + "thickness": 0.000762, + "finishes": [ + "BLACK", + "STAINLESS" + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_6_32", + "type": "OD_5_16_X_0_03", + "name": "5/16 in OD x 0.03 in", + "innerDiameter": 0.0039624, + "outerDiameter": 0.0079375, + "thickness": 0.000762, + "finishes": [ + "STAINLESS" + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_6_32", + "type": "OD_3_8_X_0_03", + "name": "3/8 in OD x 0.03 in", + "innerDiameter": 0.0039624, + "outerDiameter": 0.009525, + "thickness": 0.000762, + "finishes": [ + "BLACK" + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_8_32", + "type": "OD_3_8_X_0_03", + "name": "3/8 in OD x 0.03 in", + "innerDiameter": 0.0047752, + "outerDiameter": 0.009525, + "thickness": 0.000762, + "finishes": [ + "BLACK", + "STAINLESS" + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_10_32", + "type": "OD_7_16_X_0_03", + "name": "7/16 in OD x 0.03 in", + "innerDiameter": 0.0055626, + "outerDiameter": 0.0111125, + "thickness": 0.000762, + "finishes": [ + "BLACK", + "STAINLESS" + ] + }, + { + "vendor": "MCMASTER", + "size": "NO_10_32", + "type": "OD_1_2_X_0_04", + "name": "1/2 in OD x 0.04 in", + "innerDiameter": 0.0055626, + "outerDiameter": 0.0127, + "thickness": 0.001016, + "finishes": [ + "BLACK" + ] + }, + { + "vendor": "MCMASTER", + "size": "QUARTER_20", + "type": "OD_5_8_X_0_05", + "name": "5/8 in OD x 0.05 in", + "innerDiameter": 0.0071374, + "outerDiameter": 0.015875, + "thickness": 0.00127, + "finishes": [ + "BLACK", + "STAINLESS" + ] + }, + { + "vendor": "WCP", + "size": "NO_10_32", + "type": "OD_3_8_X_0_012", + "name": "3/8 in OD x 0.012 in", + "innerDiameter": 0.0055626, + "outerDiameter": 0.009525, + "thickness": 0.0003048, + "finishes": [ + "BLACK" + ] + }, + { + "vendor": "WCP", + "size": "NO_10_32", + "type": "OD_3_8_X_0_031", + "name": "3/8 in OD x 0.031 in", + "innerDiameter": 0.0055626, + "outerDiameter": 0.009525, + "thickness": 0.0007874, + "finishes": [ + "BLACK" + ] + }, + { + "vendor": "WCP", + "size": "NO_10_32", + "type": "OD_5_8_X_0_031", + "name": "5/8 in OD x 0.031 in", + "innerDiameter": 0.0055626, + "outerDiameter": 0.015875, + "thickness": 0.0007874, + "finishes": [ + "BLACK" + ] + }, + { + "vendor": "WCP", + "size": "QUARTER_20", + "type": "OD_3_8_X_0_012", + "name": "3/8 in OD x 0.012 in", + "innerDiameter": 0.0071374, + "outerDiameter": 0.009525, + "thickness": 0.0003048, + "finishes": [ + "BLACK" + ] + }, + { + "vendor": "WCP", + "size": "QUARTER_20", + "type": "OD_3_8_X_0_031", + "name": "3/8 in OD x 0.031 in", + "innerDiameter": 0.0071374, + "outerDiameter": 0.009525, + "thickness": 0.0007874, + "finishes": [ + "BLACK" + ] + }, + { + "vendor": "ANDYMARK", + "size": "NO_6_32", + "type": "OD_5_8_X_0_031", + "name": "5/8 in OD x 0.031 in", + "innerDiameter": 0.0039624, + "outerDiameter": 0.015875, + "thickness": 0.0007874, + "finishes": [ + "STAINLESS" + ] + }, + { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "type": "OD_3_4_X_0_062", + "name": "3/4 in OD x 0.062 in", + "innerDiameter": 0.0055626, + "outerDiameter": 0.01905, + "thickness": 0.0015748, + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "ANDYMARK", + "size": "NO_10_32", + "type": "OD_1_X_0_062", + "name": "1 in OD x 0.062 in", + "innerDiameter": 0.0055626, + "outerDiameter": 0.0254, + "thickness": 0.0015748, + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "type": "OD_5_8_X_0_063", + "name": "5/8 in OD x 0.063 in", + "innerDiameter": 0.0071374, + "outerDiameter": 0.015875, + "thickness": 0.0016002, + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "type": "OD_1_X_0_062", + "name": "1 in OD x 0.062 in", + "innerDiameter": 0.0071374, + "outerDiameter": 0.0254, + "thickness": 0.0015748, + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "ANDYMARK", + "size": "QUARTER_20", + "type": "OD_3_X_0_06", + "name": "3 in OD x 0.06 in", + "innerDiameter": 0.0064008, + "outerDiameter": 0.0762, + "thickness": 0.001524, + "finishes": [ + "ZINC_PLATED" + ] + } + ] +} diff --git a/featurescripts/fasteners/fasteners.md b/featurescripts/fasteners/fasteners.md new file mode 100644 index 00000000..a8836e82 --- /dev/null +++ b/featurescripts/fasteners/fasteners.md @@ -0,0 +1,146 @@ +# Fasteners + +## Summary + +FRCDesign's library fasteners, generated for FRCDesignApp, which inserts them from the library and into assemblies: `fastenerScrew`, +`fastenerWasher`, and `fastenerNut`, each built in a Part Studio of its own whose configuration sets every +parameter. Files: `fasteners.fs` (the features), `fastenerTables.py` (the catalog, from FRCDesign's Fasteners +group in `vendor/frcdesign-fasteners.json`, read from FRCDesign's public API, with WCP's and AndyMark's screws from +their stores in `vendor/stores.json`, both refreshed by `uv run python featurescripts/fasteners/fastenerTables.py +fetch`: the enums and data in `fastenerTables.gen.fs`, the Part Studios' configurations, and FRCDesign's manifest +`fasteners.gen.json`). The hole scan FRCDesignApp evaluates in the Part Studios of the parts it fastens lives in +FRCDesignApp, beside the code that reads its answer. + +FTC's metric fasteners (M3 and M4, from McMaster-Carr, goBILDA, REV, and AndyMark; see docs/ftc-fasteners.md) are the +same features and tables, offered by Part Studios of their own: a second part set (`[tool.fs.parts.ftcFasteners]`), +which `ftcFastenerTables.py` configures from `fastenerTables.py`'s `FTC` catalog, writing its manifest, +`ftcFasteners.gen.json`, and released into ConfigLib's document. Each set's studios offer its own sizes alone, so FRC's +offer what they did before FTC's. + +Unreleased. It's a part set (`[tool.fs.parts.fasteners]`, see docs/parts.md), not released to the frontend document: +its Part Studios (Screw, Washer, and Nut) are built from `fastenerTables.py`'s `STUDIOS`, never by hand. `fs parts +fasteners --test` builds them in the backend document as `Screw (TEST)` and so on, to try a change, and `fs parts +fasteners --release` releases them into FRCDesignLib's Fasteners document, recording where they are in +`fastenerTables.studios.json`, which the manifest's locations come from. + +## Strings + +| Feature | Name | Description | +| --- | --- | --- | +| `fastenerScrew` | Screw | A standard screw from FRCDesign's library, seated at the origin. | +| `fastenerWasher` | Washer | A washer from FRCDesign's library, from the origin up. | +| `fastenerNut` | Nut | A nut from FRCDesign's library, seated at the origin. | + +Each description ends with the credit. + +| Message | When | Highlights | Closest std error | +| --- | --- | --- | --- | +| Selected vendor does not make this screw in this finish, change the finish. (error) | The vendor makes no screw of this size and head in this finish | Finish | none | +| Selected vendor does not make this screw, change the length. (error) | The vendor makes no screw of this size, head, finish, and length | Length | none | +| Selected vendor does not make this washer, change the type. (error) | The vendor makes no washer of this size and type | Type | none | +| Selected vendor does not make this washer in this finish, change the finish. (error) | The type is made in other finishes, but not this one | Finish | none | +| Selected vendor does not make this nut, change the type. (error) | The vendor makes no nut of this size and type | Type | none | +| Selected vendor does not make this nut in this finish, change the finish. (error) | The type is made in other finishes, but not this one | Finish | none | + +The configurations only offer what's made, so these show only in the features' own dialogs. + +| Part | Name | +| --- | --- | +| Screw | ` x Screw`, e.g. `#10-32 x 1/2 in Button Head Screw`, with any finish but black, and fully threaded, after it: `... Socket Head Screw (Zinc plated)`, `... (Fully threaded)` | +| Washer | ` Washer ()`, e.g. `#10 Washer (1/2 in OD x 0.049 in)`, with any finish but black after the type: `(7/16 in OD x 0.03 in, Stainless steel)`, `(3/4 in OD x 0.062 in, Zinc plated)` | +| Nut | ` Nut`, e.g. `#10-32 Thin Nylock Nut` | +| FTC screw | ` x Screw ()`, by its size alone, with its finish but for Generic's: `M4 x 10 mm Socket Head Screw (Stainless steel)`, `M4 x 30 mm Socket Head Screw (Black, fully threaded)`, `M3 x 8 mm Hex Head Screw (Zinc plated)` | +| FTC washer | As FRC's, with any finish but zinc plated after the type: `M3 Washer (7 mm OD x 0.5 mm, Stainless steel)` | +| FTC nut | ` Nut`, with any finish but zinc plated after it: `M4 Nylock Nut (Stainless steel)` | + +Each has its material (steel, stainless steel, or aluminum, as its vendor sells it) and its finish's appearance, as +FRCDesignLib's color standards give it (general black, medium grey for zinc plated and for aluminum, whose color WCP +doesn't publish, and steel grey for stainless); zinc-plated nuts are the standards' zinc-coated steel (#E1E7EC), and black and +stainless ones take their finish's. AndyMark's washer am-1027 is named for its outer diameter in FRCDesign's record; its configuration gives its +bore, 0.281 in, which it's read with. Each has its vendor as its Vendor, +its part number, and its link as its description, where the vendor has them (Generic has none). `fastenerTables.py` names every configuration's part (its +`Record`s) and writes each into the tables, which the features set as they are, and into the manifest, which +FRCDesignApp indexes in place of asking Onshape: one record per configuration the Part Studio offers, so the two +can't disagree. + +## How it works + +Every part is built along the Z axis, and has one mate connector at the origin (`id + "mateConnector"`, which each +studio names as its `mate_connector` in the manifest, since a fasten mate names it under the feature's id), pointing out of the hole, where it +seats: FRCDesign fastens a screw or nut to the top edge of the washer under it, or to the hole's edge, and a washer to +the hole's edge. So any washer goes under any screw or nut, and none has a washer input. + +Each dialog is a flat list, with no conditions: Vendor, Size, Head, Finish, one `ScrewLength` of every length any vendor +makes, and a Fully threaded checkbox, for a screw; Vendor, Size, Type, and Finish for a washer; Vendor, Size, Type, and +Finish for a nut (FRC's nuts come in zinc plating alone, so their configuration doesn't ask). +Screws, washers, and nuts have their own finish enums (`ScrewFinish`, `WasherFinish`, `NutFinish`), so no dialog offers +a finish its kind never comes in. +So each Part Studio wires every parameter to a configuration input of the same options, and the configuration's +visibility conditions, not the dialog, show only what's made, laid out by `LookupTable` (see docs/fs-cli.md's +"Configured Part Studios"): an input shows only where more than one of its options is made with the choices before it, +so Length shows the lengths the chosen vendor makes in the chosen size, head, and finish, and Finish shows only where +there's a choice of finish. An input with one option anywhere is fixed and left out: McMaster-Carr makes every nut, so +the nut's configuration has no Vendor. A hidden input keeps whatever it was last set to, so the features resolve +each choice with `resolveChoices` to the one option made where only one is, and build from those: a screw's size and +head as well as its part. The tables hold both sets' parts, and REV makes a #10-32 screw for FRC and an M3 one for FTC, +so a hidden size resolves within its own set (imperial or metric), the only sizes its studio offers. Anything else not +made is an error. + +The defaults are what's inserted most from FRCDesign's library, by its analytics: #10-32 x 3/8 in black button heads +(from Generic, which names no vendor), #10-32 nylocks, and McMaster-Carr's #10 x 7/16 in OD stainless washers. FTC's +are M4 x 10 mm socket heads, M4 nylocks, and M4 washers, all Generic, ConfigLib's most +inserted; its studios list their finishes cheapest first (stainless for screws, zinc plating for nuts and washers). + +Fully threaded shows only where a length is sold both ways (McMaster-Carr's long socket heads, whose standard is partly +threaded); a screw's table entry has its `standard` part and, there, its `fullThread` one, which the screw takes only +when it's chosen. A part its vendor sells threaded its whole length (`fullyThreaded`: goBILDA's and REV's, and +McMaster-Carr's metric ones it says so of) is threaded so, whatever its head's standard. In the configuration it's a List, No or Yes, not a checkbox: a checkbox shows by a single condition, +and where it's sold both ways needs several. + +`fastenerScrew`: + +1. Revolves its profile (`screwProfile`, in `PROFILE_PLANE`) a full turn about Z. A socket or button head is above the + origin, from its underside; a flat head is below it, its top flush with the origin, and its length includes it, in + its size's countersink (82 degrees imperial, 90 metric). A hex head's profile is its shank alone, its head extruded + onto it (`addHexHead`): a hexagon up from the origin, chamfered at 30 degrees around its top as a nut is + (`hexHeadProfile`). The + proportions are McMaster-Carr's models': every tip has a 45 degree chamfer (`tipChamfer`), a socket head a 45 degree + chamfer around its top, a flat head a short band above its cone (`flatHeadDepth`), and a button head a short side + below its dome, an arc (`buttonDome`) up to a flat top 1.4 times its socket's size across. +2. Cuts a hex socket from the top of the head (`addSocket`, `socketDepth`: half a socket head's height, 0.45 of a + button head's, 0.46 of a flat head's cone). A hex head has none. +3. Threads the shank as std's External thread does: a hole attribute on the shank and the edge above the tip + chamfer, and on the chamfer as its chamfer face, and a cosmetic thread up the shank from that edge, at the size's + pitch, `threadLength` long. That's up to the head, except on a standard socket head, threaded 2D plus its size's + allowance where it's longer (1/2 in by ASTM A574, 12 mm by ISO 4762). +4. Adds the mate connector, then deletes the sketches and names the part. + +`fastenerWasher` extrudes a ring up from the origin, adds the mate connector, and names the part. `fastenerNut`: + +1. Extrudes a hexagon or square up from the origin, as tall as the nut. +2. Revolves its profile (`nutProfile`) and keeps what's inside both. The profile is its bore, the size's tap drill, + and its chamfers from the circle across its flats: 30 degrees on both ends of a hex nut, on the top only of a + square nut, 25 degrees on both ends of a nylock's hex. A nylock rises from its hex in a quarter circle + (`nylockDome`) to a flat top, where its nylon insert sits 0.009 in down in a bore of its own. +3. Taps the bore through as std's Hole does: a hole attribute on it (which FRCDesignApp's hole scan reads as threaded), and + a cosmetic thread up from the origin, to a nylock's insert. +4. Adds the mate connector, deletes the sketches, names the part, and colors a nylock's insert white. + +Threads are cosmetic: the parts are for fit and clearance. + +There are no `try`s. + +## Issues found + +- Tried in Onshape (FeatureScript 3095, in a scratch Part Studio, not yet in the released studios): each kind of + screw, washer, and nut regenerates as one part with its mate connector at the origin pointing up, named, and with + its part number. +- Nuts are measured from McMaster-Carr's models in #6-32 and #10-32, and the 1/4-20 square nut. The rest are + nominal, and the other sizes' nylock domes and inserts take the measured nylocks' proportions: a dome a sixth of the + nut's height, and an insert 0.61 of its width across flats. +- Not yet tried in Onshape: the nuts' chamfers, domes, and inserts, and the configurations' hidden inputs. +- Not yet tried in Onshape: FTC's metric parts, hex heads, and the nut's finish. +- Metric nuts are measured from McMaster-Carr's, goBILDA's, and REV's models; AndyMark's, which it publishes none of, + take McMaster-Carr's and REV's of the same type. +- Not yet tried in Onshape: the chamfers, button domes, and threads. Neither is whether Onshape's hole callouts and + Fasten mates read the attributes as they read std's. diff --git a/featurescripts/fasteners/ftcFastenerTables.py b/featurescripts/fasteners/ftcFastenerTables.py new file mode 100644 index 00000000..cff4dce7 --- /dev/null +++ b/featurescripts/fasteners/ftcFastenerTables.py @@ -0,0 +1,32 @@ +"""FTC's library fasteners, generated for FRCDesignApp's ConfigLib: metric screws, washers, and nuts. Run `uv run fs gen` +after editing fastenerTables.py, which holds them. + +They're FRC's features and tables (fasteners.fs, fastenerTables.gen.fs), configured to offer FTC's metric sizes alone, as +a part set of their own (`[tool.fs.parts.ftcFasteners]`) released into ConfigLib's document: this sets its studios and +writes its manifest for FRCDesign, ftcFasteners.gen.json, as fastenerTables.py does FRC's. See docs/ftc-fasteners.md +for where its parts come from. +""" + +from __future__ import annotations + +import json +import pathlib +import runpy + +from fs_cli.configured_studios import read_locations + +_TABLES = runpy.run_path(str(pathlib.Path(__file__).with_name("fastenerTables.py"))) +FTC = _TABLES["FTC"] + +STUDIOS = FTC.studios +RECORDS = FTC.records + +# Where each studio was last released: `fs parts ftcFasteners --release` records it beside this file +LOCATIONS = read_locations(pathlib.Path(__file__)) + +EXPORTS = { + "ftcFasteners.gen.json": json.dumps( + _TABLES["manifest"](FTC, LOCATIONS, pathlib.Path(__file__).name), indent=2 + ) + + "\n" +} diff --git a/featurescripts/fasteners/ftcFasteners.gen.json b/featurescripts/fasteners/ftcFasteners.gen.json new file mode 100644 index 00000000..e6e10ba5 --- /dev/null +++ b/featurescripts/fasteners/ftcFasteners.gen.json @@ -0,0 +1,16122 @@ +{ + "source": "featurescripts/fasteners/ftcFastenerTables.py", + "studios": { + "screw": { + "feature": "fastenerScrew", + "mateConnector": "mateConnector", + "configuration": { + "btType": "BTConfigurationUpdateCall-2933", + "configurationParameters": [ + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "vendor", + "parameterName": "Vendor", + "enumName": "vendor_conf", + "namespace": "", + "defaultValue": "GENERIC", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "GENERIC", + "optionName": "Generic" + }, + { + "btType": "BTMEnumOption-592", + "option": "MCMASTER", + "optionName": "McMaster-Carr" + }, + { + "btType": "BTMEnumOption-592", + "option": "GOBILDA", + "optionName": "goBILDA" + }, + { + "btType": "BTMEnumOption-592", + "option": "REV", + "optionName": "REV" + }, + { + "btType": "BTMEnumOption-592", + "option": "ANDYMARK", + "optionName": "AndyMark" + } + ] + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "size", + "parameterName": "Size", + "enumName": "size_conf", + "namespace": "", + "defaultValue": "M4", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "M3", + "optionName": "M3 x 0.5" + }, + { + "btType": "BTMEnumOption-592", + "option": "M4", + "optionName": "M4 x 0.7" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "M3", + "M4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GOBILDA", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "head", + "parameterName": "Head", + "enumName": "head_conf", + "namespace": "", + "defaultValue": "SOCKET", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "SOCKET", + "optionName": "Socket head" + }, + { + "btType": "BTMEnumOption-592", + "option": "BUTTON", + "optionName": "Button head" + }, + { + "btType": "BTMEnumOption-592", + "option": "FLAT", + "optionName": "Flat head" + }, + { + "btType": "BTMEnumOption-592", + "option": "HEX", + "optionName": "Hex head" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "SOCKET" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "SOCKET", + "HEX" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GOBILDA", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "BUTTON", + "FLAT" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "BUTTON" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GOBILDA", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "FLAT" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "HEX" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "finish", + "parameterName": "Finish", + "enumName": "finish_conf", + "namespace": "", + "defaultValue": "STAINLESS", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "STAINLESS", + "optionName": "Stainless steel" + }, + { + "btType": "BTMEnumOption-592", + "option": "ZINC_PLATED", + "optionName": "Zinc plated" + }, + { + "btType": "BTMEnumOption-592", + "option": "BLACK", + "optionName": "Black" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "STAINLESS", + "ZINC_PLATED", + "BLACK" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "STAINLESS" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "ZINC_PLATED" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "BLACK" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "length", + "parameterName": "Length", + "enumName": "length_conf", + "namespace": "", + "defaultValue": "MM_10", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "MM_3", + "optionName": "3 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_4", + "optionName": "4 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_5", + "optionName": "5 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_6", + "optionName": "6 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_7", + "optionName": "7 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_8", + "optionName": "8 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_9", + "optionName": "9 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_10", + "optionName": "10 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_11", + "optionName": "11 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_12", + "optionName": "12 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_14", + "optionName": "14 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_15", + "optionName": "15 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_16", + "optionName": "16 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_18", + "optionName": "18 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_20", + "optionName": "20 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_22", + "optionName": "22 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_25", + "optionName": "25 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_30", + "optionName": "30 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_35", + "optionName": "35 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_40", + "optionName": "40 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_45", + "optionName": "45 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_50", + "optionName": "50 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_55", + "optionName": "55 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_60", + "optionName": "60 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_65", + "optionName": "65 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_70", + "optionName": "70 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_75", + "optionName": "75 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_80", + "optionName": "80 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_85", + "optionName": "85 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_90", + "optionName": "90 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_100", + "optionName": "100 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_110", + "optionName": "110 mm" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_3", + "MM_55" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "STAINLESS", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_3", + "MM_55" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "STAINLESS", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_4", + "MM_80" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "STAINLESS", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_4", + "MM_15" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_4", + "MM_30" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_4", + "MM_12" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_4", + "MM_80" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_5", + "MM_6", + "MM_8", + "MM_10", + "MM_15", + "MM_20", + "MM_22", + "MM_40", + "MM_45", + "MM_50" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "STAINLESS", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_5", + "MM_10", + "MM_30" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_5", + "MM_14", + "MM_15", + "MM_18", + "MM_22", + "MM_30", + "MM_40", + "MM_45", + "MM_50" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_5", + "MM_6", + "MM_14", + "MM_18", + "MM_20", + "MM_22", + "MM_25", + "MM_30", + "MM_35", + "MM_40", + "MM_45", + "MM_50", + "MM_55", + "MM_60" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GOBILDA", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_5", + "MM_8", + "MM_12" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_6", + "MM_22" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_6", + "MM_8", + "MM_14" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_6", + "MM_8", + "MM_30" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_6", + "MM_8", + "MM_12", + "MM_14", + "MM_35" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_6", + "MM_20", + "MM_25", + "MM_35" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "HEX", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_6", + "MM_20", + "MM_25", + "MM_35", + "MM_55", + "MM_60", + "MM_65", + "MM_70" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_6", + "MM_8", + "MM_10", + "MM_12" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GOBILDA", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_6", + "MM_8", + "MM_10", + "MM_16", + "MM_20", + "MM_25", + "MM_35" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "REV", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_7", + "MM_9", + "MM_11", + "MM_75" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GOBILDA", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_8", + "MM_10" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_8", + "MM_10", + "MM_40" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_8", + "MM_10", + "MM_16" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "HEX", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_8", + "MM_10", + "MM_12", + "MM_16" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GOBILDA", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "HEX", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_10", + "MM_12" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_12", + "MM_14", + "MM_18", + "MM_25", + "MM_30", + "MM_35" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "STAINLESS", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_12" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "HEX", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_14" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_15", + "MM_65", + "MM_80", + "MM_110" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_15" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_16" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "STAINLESS", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_18" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_20" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_20" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_22" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_22" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_25" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_25", + "MM_40", + "MM_50" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_35", + "MM_50" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_40", + "MM_45", + "MM_50" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_40", + "MM_45" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "ZINC_PLATED", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_45", + "MM_55" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "STAINLESS", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_45", + "MM_50" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_55", + "MM_60", + "MM_65", + "MM_70" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "STAINLESS", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "BUTTON", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "FLAT", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_55", + "MM_60", + "MM_70" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_60", + "MM_65", + "MM_70" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "STAINLESS", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_60", + "MM_65", + "MM_70" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_75", + "MM_85", + "MM_90", + "MM_100" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "STAINLESS", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_85", + "MM_90", + "MM_100", + "MM_110" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "fullyThreaded", + "parameterName": "Fully threaded", + "enumName": "fullyThreaded_conf", + "namespace": "", + "defaultValue": "false", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "false", + "optionName": "No" + }, + { + "btType": "BTMEnumOption-592", + "option": "true", + "optionName": "Yes" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "false", + "true" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "MM_30", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "false", + "true" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "finish", + "value": "BLACK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "head", + "value": "SOCKET", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "MM_30", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "MM_35", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "MM_40", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "MM_45", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "length", + "value": "MM_50", + "inArray": false + } + ] + } + ] + } + } + ] + } + } + ] + }, + "location": null, + "records": [ + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_3" + }, + "name": "M3 x 3 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_4" + }, + "name": "M3 x 4 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_5" + }, + "name": "M3 x 5 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_6" + }, + "name": "M3 x 6 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_8" + }, + "name": "M3 x 8 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_10" + }, + "name": "M3 x 10 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_12" + }, + "name": "M3 x 12 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_14" + }, + "name": "M3 x 14 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_15" + }, + "name": "M3 x 15 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_16" + }, + "name": "M3 x 16 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_18" + }, + "name": "M3 x 18 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_20" + }, + "name": "M3 x 20 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_22" + }, + "name": "M3 x 22 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_25" + }, + "name": "M3 x 25 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_30" + }, + "name": "M3 x 30 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_35" + }, + "name": "M3 x 35 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_40" + }, + "name": "M3 x 40 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_45" + }, + "name": "M3 x 45 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_50" + }, + "name": "M3 x 50 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_55" + }, + "name": "M3 x 55 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_60" + }, + "name": "M3 x 60 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_65" + }, + "name": "M3 x 65 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "length": "MM_70" + }, + "name": "M3 x 70 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_3" + }, + "name": "M3 x 3 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_4" + }, + "name": "M3 x 4 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_5" + }, + "name": "M3 x 5 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_6" + }, + "name": "M3 x 6 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_8" + }, + "name": "M3 x 8 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_10" + }, + "name": "M3 x 10 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_12" + }, + "name": "M3 x 12 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_14" + }, + "name": "M3 x 14 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_15" + }, + "name": "M3 x 15 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_16" + }, + "name": "M3 x 16 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_18" + }, + "name": "M3 x 18 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_20" + }, + "name": "M3 x 20 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_22" + }, + "name": "M3 x 22 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_25" + }, + "name": "M3 x 25 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_30" + }, + "name": "M3 x 30 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_35" + }, + "name": "M3 x 35 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_40" + }, + "name": "M3 x 40 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_45" + }, + "name": "M3 x 45 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_50" + }, + "name": "M3 x 50 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "length": "MM_55" + }, + "name": "M3 x 55 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_4" + }, + "name": "M3 x 4 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_5" + }, + "name": "M3 x 5 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_6" + }, + "name": "M3 x 6 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_8" + }, + "name": "M3 x 8 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_10" + }, + "name": "M3 x 10 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_12" + }, + "name": "M3 x 12 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_14" + }, + "name": "M3 x 14 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_15" + }, + "name": "M3 x 15 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_16" + }, + "name": "M3 x 16 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_18" + }, + "name": "M3 x 18 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_20" + }, + "name": "M3 x 20 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_22" + }, + "name": "M3 x 22 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_25" + }, + "name": "M3 x 25 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_30" + }, + "name": "M3 x 30 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_35" + }, + "name": "M3 x 35 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_40" + }, + "name": "M3 x 40 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_45" + }, + "name": "M3 x 45 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "length": "MM_50" + }, + "name": "M3 x 50 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "HEX", + "length": "MM_6" + }, + "name": "M3 x 6 mm Hex Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "HEX", + "length": "MM_8" + }, + "name": "M3 x 8 mm Hex Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "HEX", + "length": "MM_10" + }, + "name": "M3 x 10 mm Hex Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "HEX", + "length": "MM_16" + }, + "name": "M3 x 16 mm Hex Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "HEX", + "length": "MM_20" + }, + "name": "M3 x 20 mm Hex Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "HEX", + "length": "MM_25" + }, + "name": "M3 x 25 mm Hex Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "head": "HEX", + "length": "MM_35" + }, + "name": "M3 x 35 mm Hex Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_4" + }, + "name": "M4 x 4 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_5" + }, + "name": "M4 x 5 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_6" + }, + "name": "M4 x 6 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_7" + }, + "name": "M4 x 7 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_8" + }, + "name": "M4 x 8 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_9" + }, + "name": "M4 x 9 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_10" + }, + "name": "M4 x 10 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_11" + }, + "name": "M4 x 11 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_12" + }, + "name": "M4 x 12 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_14" + }, + "name": "M4 x 14 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_15" + }, + "name": "M4 x 15 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_16" + }, + "name": "M4 x 16 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_18" + }, + "name": "M4 x 18 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_20" + }, + "name": "M4 x 20 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_22" + }, + "name": "M4 x 22 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_25" + }, + "name": "M4 x 25 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_30" + }, + "name": "M4 x 30 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_35" + }, + "name": "M4 x 35 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_40" + }, + "name": "M4 x 40 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_45" + }, + "name": "M4 x 45 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_50" + }, + "name": "M4 x 50 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_55" + }, + "name": "M4 x 55 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_60" + }, + "name": "M4 x 60 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_65" + }, + "name": "M4 x 65 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_70" + }, + "name": "M4 x 70 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_75" + }, + "name": "M4 x 75 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_80" + }, + "name": "M4 x 80 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_85" + }, + "name": "M4 x 85 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_90" + }, + "name": "M4 x 90 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_100" + }, + "name": "M4 x 100 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "length": "MM_110" + }, + "name": "M4 x 110 mm Socket Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_4" + }, + "name": "M4 x 4 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_5" + }, + "name": "M4 x 5 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_6" + }, + "name": "M4 x 6 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_8" + }, + "name": "M4 x 8 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_10" + }, + "name": "M4 x 10 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_12" + }, + "name": "M4 x 12 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_14" + }, + "name": "M4 x 14 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_15" + }, + "name": "M4 x 15 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_16" + }, + "name": "M4 x 16 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_18" + }, + "name": "M4 x 18 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_20" + }, + "name": "M4 x 20 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_22" + }, + "name": "M4 x 22 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_25" + }, + "name": "M4 x 25 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_30" + }, + "name": "M4 x 30 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_35" + }, + "name": "M4 x 35 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_40" + }, + "name": "M4 x 40 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_45" + }, + "name": "M4 x 45 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_50" + }, + "name": "M4 x 50 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_55" + }, + "name": "M4 x 55 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_60" + }, + "name": "M4 x 60 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_65" + }, + "name": "M4 x 65 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_70" + }, + "name": "M4 x 70 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "length": "MM_80" + }, + "name": "M4 x 80 mm Button Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_5" + }, + "name": "M4 x 5 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_6" + }, + "name": "M4 x 6 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_8" + }, + "name": "M4 x 8 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_10" + }, + "name": "M4 x 10 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_12" + }, + "name": "M4 x 12 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_14" + }, + "name": "M4 x 14 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_15" + }, + "name": "M4 x 15 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_16" + }, + "name": "M4 x 16 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_18" + }, + "name": "M4 x 18 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_20" + }, + "name": "M4 x 20 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_22" + }, + "name": "M4 x 22 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_25" + }, + "name": "M4 x 25 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_30" + }, + "name": "M4 x 30 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_35" + }, + "name": "M4 x 35 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_40" + }, + "name": "M4 x 40 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_45" + }, + "name": "M4 x 45 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_50" + }, + "name": "M4 x 50 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_55" + }, + "name": "M4 x 55 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_60" + }, + "name": "M4 x 60 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_65" + }, + "name": "M4 x 65 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "length": "MM_70" + }, + "name": "M4 x 70 mm Flat Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "HEX", + "length": "MM_8" + }, + "name": "M4 x 8 mm Hex Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "HEX", + "length": "MM_10" + }, + "name": "M4 x 10 mm Hex Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "HEX", + "length": "MM_12" + }, + "name": "M4 x 12 mm Hex Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "head": "HEX", + "length": "MM_16" + }, + "name": "M4 x 16 mm Hex Head Screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_3" + }, + "name": "M3 x 3 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "90751A173", + "url": "https://www.mcmaster.com/90751A173/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_4" + }, + "name": "M3 x 4 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A109", + "url": "https://www.mcmaster.com/91292A109/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_4" + }, + "name": "M3 x 4 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A109", + "url": "https://www.mcmaster.com/91290A109/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_5" + }, + "name": "M3 x 5 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A110", + "url": "https://www.mcmaster.com/91292A110/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_5" + }, + "name": "M3 x 5 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A187", + "url": "https://www.mcmaster.com/90128A187/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_5" + }, + "name": "M3 x 5 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A110", + "url": "https://www.mcmaster.com/91290A110/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_6" + }, + "name": "M3 x 6 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A111", + "url": "https://www.mcmaster.com/91292A111/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_6" + }, + "name": "M3 x 6 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A111", + "url": "https://www.mcmaster.com/91290A111/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_8" + }, + "name": "M3 x 8 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A112", + "url": "https://www.mcmaster.com/91292A112/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_8" + }, + "name": "M3 x 8 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A400", + "url": "https://www.mcmaster.com/91290A400/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_10" + }, + "name": "M3 x 10 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A113", + "url": "https://www.mcmaster.com/91292A113/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_10" + }, + "name": "M3 x 10 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "95263A134", + "url": "https://www.mcmaster.com/95263A134/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_10" + }, + "name": "M3 x 10 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A115", + "url": "https://www.mcmaster.com/91290A115/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_12" + }, + "name": "M3 x 12 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A114", + "url": "https://www.mcmaster.com/91292A114/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_12" + }, + "name": "M3 x 12 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "95263A146", + "url": "https://www.mcmaster.com/95263A146/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_12" + }, + "name": "M3 x 12 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A500", + "url": "https://www.mcmaster.com/91290A500/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_14" + }, + "name": "M3 x 14 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A027", + "url": "https://www.mcmaster.com/91292A027/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_14" + }, + "name": "M3 x 14 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A600", + "url": "https://www.mcmaster.com/91290A600/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_15" + }, + "name": "M3 x 15 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A346", + "url": "https://www.mcmaster.com/91292A346/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_15" + }, + "name": "M3 x 15 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A331", + "url": "https://www.mcmaster.com/90128A331/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_15" + }, + "name": "M3 x 15 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A572", + "url": "https://www.mcmaster.com/91290A572/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_16" + }, + "name": "M3 x 16 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A115", + "url": "https://www.mcmaster.com/91292A115/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_16" + }, + "name": "M3 x 16 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "95263A158", + "url": "https://www.mcmaster.com/95263A158/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_16" + }, + "name": "M3 x 16 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A120", + "url": "https://www.mcmaster.com/91290A120/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_18" + }, + "name": "M3 x 18 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A029", + "url": "https://www.mcmaster.com/91292A029/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_18" + }, + "name": "M3 x 18 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A121", + "url": "https://www.mcmaster.com/91290A121/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_20" + }, + "name": "M3 x 20 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A123", + "url": "https://www.mcmaster.com/91292A123/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_20" + }, + "name": "M3 x 20 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A204", + "url": "https://www.mcmaster.com/90128A204/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_20" + }, + "name": "M3 x 20 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A123", + "url": "https://www.mcmaster.com/91290A123/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_22" + }, + "name": "M3 x 22 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A801", + "url": "https://www.mcmaster.com/91292A801/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_22" + }, + "name": "M3 x 22 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A124", + "url": "https://www.mcmaster.com/91290A124/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_25" + }, + "name": "M3 x 25 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A020", + "url": "https://www.mcmaster.com/91292A020/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_25" + }, + "name": "M3 x 25 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A205", + "url": "https://www.mcmaster.com/90128A205/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_25" + }, + "name": "M3 x 25 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A125", + "url": "https://www.mcmaster.com/91290A125/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_30" + }, + "name": "M3 x 30 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A022", + "url": "https://www.mcmaster.com/91292A022/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_30", + "fullyThreaded": "false" + }, + "name": "M3 x 30 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A130", + "url": "https://www.mcmaster.com/91290A130/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_30", + "fullyThreaded": "true" + }, + "name": "M3 x 30 mm Socket Head Screw (Black, fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "91290A171", + "url": "https://www.mcmaster.com/91290A171/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_35" + }, + "name": "M3 x 35 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A033", + "url": "https://www.mcmaster.com/91292A033/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_35" + }, + "name": "M3 x 35 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A135", + "url": "https://www.mcmaster.com/91290A135/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_40" + }, + "name": "M3 x 40 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A024", + "url": "https://www.mcmaster.com/91292A024/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_40" + }, + "name": "M3 x 40 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A136", + "url": "https://www.mcmaster.com/91290A136/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_45" + }, + "name": "M3 x 45 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A025", + "url": "https://www.mcmaster.com/91292A025/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_45" + }, + "name": "M3 x 45 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A079", + "url": "https://www.mcmaster.com/91290A079/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_50" + }, + "name": "M3 x 50 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A026", + "url": "https://www.mcmaster.com/91292A026/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_50" + }, + "name": "M3 x 50 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A137", + "url": "https://www.mcmaster.com/91290A137/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_55" + }, + "name": "M3 x 55 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A314", + "url": "https://www.mcmaster.com/91292A314/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_55" + }, + "name": "M3 x 55 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A573", + "url": "https://www.mcmaster.com/91290A573/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_60" + }, + "name": "M3 x 60 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A267", + "url": "https://www.mcmaster.com/91292A267/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_60" + }, + "name": "M3 x 60 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A181", + "url": "https://www.mcmaster.com/91290A181/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_65" + }, + "name": "M3 x 65 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A315", + "url": "https://www.mcmaster.com/91292A315/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_70" + }, + "name": "M3 x 70 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A316", + "url": "https://www.mcmaster.com/91292A316/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_70" + }, + "name": "M3 x 70 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A297", + "url": "https://www.mcmaster.com/91290A297/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_3" + }, + "name": "M3 x 3 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A287", + "url": "https://www.mcmaster.com/92095A287/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_4" + }, + "name": "M3 x 4 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A471", + "url": "https://www.mcmaster.com/92095A471/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_4" + }, + "name": "M3 x 4 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A721", + "url": "https://www.mcmaster.com/91306A721/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_4" + }, + "name": "M3 x 4 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A109", + "url": "https://www.mcmaster.com/91239A109/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_5" + }, + "name": "M3 x 5 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A177", + "url": "https://www.mcmaster.com/92095A177/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_5" + }, + "name": "M3 x 5 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A655", + "url": "https://www.mcmaster.com/91306A655/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_5" + }, + "name": "M3 x 5 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A110", + "url": "https://www.mcmaster.com/91239A110/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_6" + }, + "name": "M3 x 6 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A179", + "url": "https://www.mcmaster.com/92095A179/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_6" + }, + "name": "M3 x 6 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A656", + "url": "https://www.mcmaster.com/91306A656/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_8" + }, + "name": "M3 x 8 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A181", + "url": "https://www.mcmaster.com/92095A181/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_8" + }, + "name": "M3 x 8 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A657", + "url": "https://www.mcmaster.com/91306A657/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_10" + }, + "name": "M3 x 10 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A182", + "url": "https://www.mcmaster.com/92095A182/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_10" + }, + "name": "M3 x 10 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A722", + "url": "https://www.mcmaster.com/91306A722/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_12" + }, + "name": "M3 x 12 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A183", + "url": "https://www.mcmaster.com/92095A183/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_12" + }, + "name": "M3 x 12 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A658", + "url": "https://www.mcmaster.com/91306A658/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_12" + }, + "name": "M3 x 12 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A117", + "url": "https://www.mcmaster.com/91239A117/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_14" + }, + "name": "M3 x 14 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A168", + "url": "https://www.mcmaster.com/92095A168/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_14" + }, + "name": "M3 x 14 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A723", + "url": "https://www.mcmaster.com/91306A723/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_14" + }, + "name": "M3 x 14 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A118", + "url": "https://www.mcmaster.com/91239A118/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_15" + }, + "name": "M3 x 15 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A119", + "url": "https://www.mcmaster.com/92095A119/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_15" + }, + "name": "M3 x 15 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A811", + "url": "https://www.mcmaster.com/91239A811/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_16" + }, + "name": "M3 x 16 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A184", + "url": "https://www.mcmaster.com/92095A184/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_16" + }, + "name": "M3 x 16 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A724", + "url": "https://www.mcmaster.com/91306A724/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_16" + }, + "name": "M3 x 16 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A120", + "url": "https://www.mcmaster.com/91239A120/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_18" + }, + "name": "M3 x 18 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A472", + "url": "https://www.mcmaster.com/92095A472/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_18" + }, + "name": "M3 x 18 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A121", + "url": "https://www.mcmaster.com/91239A121/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_20" + }, + "name": "M3 x 20 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A185", + "url": "https://www.mcmaster.com/92095A185/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_22" + }, + "name": "M3 x 22 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A473", + "url": "https://www.mcmaster.com/92095A473/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_25" + }, + "name": "M3 x 25 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A186", + "url": "https://www.mcmaster.com/92095A186/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_25" + }, + "name": "M3 x 25 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A126", + "url": "https://www.mcmaster.com/91239A126/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_30" + }, + "name": "M3 x 30 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A187", + "url": "https://www.mcmaster.com/92095A187/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_30" + }, + "name": "M3 x 30 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A725", + "url": "https://www.mcmaster.com/91306A725/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_30" + }, + "name": "M3 x 30 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A127", + "url": "https://www.mcmaster.com/91239A127/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_35" + }, + "name": "M3 x 35 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A201", + "url": "https://www.mcmaster.com/92095A201/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_35" + }, + "name": "M3 x 35 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A128", + "url": "https://www.mcmaster.com/91239A128/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_40" + }, + "name": "M3 x 40 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A203", + "url": "https://www.mcmaster.com/92095A203/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_45" + }, + "name": "M3 x 45 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A474", + "url": "https://www.mcmaster.com/92095A474/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_50" + }, + "name": "M3 x 50 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A475", + "url": "https://www.mcmaster.com/92095A475/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_55" + }, + "name": "M3 x 55 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A120", + "url": "https://www.mcmaster.com/92095A120/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_4" + }, + "name": "M3 x 4 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A127", + "url": "https://www.mcmaster.com/92125A127/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_5" + }, + "name": "M3 x 5 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A125", + "url": "https://www.mcmaster.com/92125A125/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_5" + }, + "name": "M3 x 5 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A821", + "url": "https://www.mcmaster.com/91263A821/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_5" + }, + "name": "M3 x 5 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A125", + "url": "https://www.mcmaster.com/91294A125/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_6" + }, + "name": "M3 x 6 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A126", + "url": "https://www.mcmaster.com/92125A126/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_6" + }, + "name": "M3 x 6 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A822", + "url": "https://www.mcmaster.com/91263A822/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_6" + }, + "name": "M3 x 6 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A126", + "url": "https://www.mcmaster.com/91294A126/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_8" + }, + "name": "M3 x 8 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A128", + "url": "https://www.mcmaster.com/92125A128/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_8" + }, + "name": "M3 x 8 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A823", + "url": "https://www.mcmaster.com/91263A823/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_8" + }, + "name": "M3 x 8 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A128", + "url": "https://www.mcmaster.com/91294A128/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_10" + }, + "name": "M3 x 10 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A130", + "url": "https://www.mcmaster.com/92125A130/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_10" + }, + "name": "M3 x 10 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A824", + "url": "https://www.mcmaster.com/91263A824/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_10" + }, + "name": "M3 x 10 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A130", + "url": "https://www.mcmaster.com/91294A130/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_12" + }, + "name": "M3 x 12 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A132", + "url": "https://www.mcmaster.com/92125A132/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_12" + }, + "name": "M3 x 12 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A825", + "url": "https://www.mcmaster.com/91263A825/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_12" + }, + "name": "M3 x 12 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A132", + "url": "https://www.mcmaster.com/91294A132/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_14" + }, + "name": "M3 x 14 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A133", + "url": "https://www.mcmaster.com/92125A133/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_14" + }, + "name": "M3 x 14 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A863", + "url": "https://www.mcmaster.com/91263A863/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_14" + }, + "name": "M3 x 14 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A133", + "url": "https://www.mcmaster.com/91294A133/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_15" + }, + "name": "M3 x 15 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A103", + "url": "https://www.mcmaster.com/92125A103/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_16" + }, + "name": "M3 x 16 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A134", + "url": "https://www.mcmaster.com/92125A134/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_16" + }, + "name": "M3 x 16 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A864", + "url": "https://www.mcmaster.com/91263A864/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_16" + }, + "name": "M3 x 16 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A134", + "url": "https://www.mcmaster.com/91294A134/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_18" + }, + "name": "M3 x 18 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A135", + "url": "https://www.mcmaster.com/92125A135/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_18" + }, + "name": "M3 x 18 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A865", + "url": "https://www.mcmaster.com/91263A865/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_18" + }, + "name": "M3 x 18 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A135", + "url": "https://www.mcmaster.com/91294A135/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_20" + }, + "name": "M3 x 20 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A136", + "url": "https://www.mcmaster.com/92125A136/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_20" + }, + "name": "M3 x 20 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A866", + "url": "https://www.mcmaster.com/91263A866/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_20" + }, + "name": "M3 x 20 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A136", + "url": "https://www.mcmaster.com/91294A136/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_22" + }, + "name": "M3 x 22 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A371", + "url": "https://www.mcmaster.com/92125A371/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_22" + }, + "name": "M3 x 22 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A867", + "url": "https://www.mcmaster.com/91263A867/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_22" + }, + "name": "M3 x 22 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A137", + "url": "https://www.mcmaster.com/91294A137/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_25" + }, + "name": "M3 x 25 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A138", + "url": "https://www.mcmaster.com/92125A138/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_25" + }, + "name": "M3 x 25 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A868", + "url": "https://www.mcmaster.com/91263A868/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_25" + }, + "name": "M3 x 25 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A138", + "url": "https://www.mcmaster.com/91294A138/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_30" + }, + "name": "M3 x 30 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A140", + "url": "https://www.mcmaster.com/92125A140/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_30" + }, + "name": "M3 x 30 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A141", + "url": "https://www.mcmaster.com/91294A141/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_35" + }, + "name": "M3 x 35 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A141", + "url": "https://www.mcmaster.com/92125A141/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_35" + }, + "name": "M3 x 35 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A536", + "url": "https://www.mcmaster.com/91294A536/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_40" + }, + "name": "M3 x 40 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A150", + "url": "https://www.mcmaster.com/92125A150/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_45" + }, + "name": "M3 x 45 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A372", + "url": "https://www.mcmaster.com/92125A372/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_50" + }, + "name": "M3 x 50 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A151", + "url": "https://www.mcmaster.com/92125A151/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_4" + }, + "name": "M4 x 4 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A023", + "url": "https://www.mcmaster.com/91292A023/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_5" + }, + "name": "M4 x 5 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A105", + "url": "https://www.mcmaster.com/91292A105/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_5" + }, + "name": "M4 x 5 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A207", + "url": "https://www.mcmaster.com/90128A207/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_5" + }, + "name": "M4 x 5 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A138", + "url": "https://www.mcmaster.com/91290A138/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_6" + }, + "name": "M4 x 6 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A107", + "url": "https://www.mcmaster.com/91292A107/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_6" + }, + "name": "M4 x 6 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A208", + "url": "https://www.mcmaster.com/90128A208/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_6" + }, + "name": "M4 x 6 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A139", + "url": "https://www.mcmaster.com/91290A139/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_8" + }, + "name": "M4 x 8 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A108", + "url": "https://www.mcmaster.com/91292A108/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_8" + }, + "name": "M4 x 8 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A211", + "url": "https://www.mcmaster.com/90128A211/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_8" + }, + "name": "M4 x 8 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A140", + "url": "https://www.mcmaster.com/91290A140/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_10" + }, + "name": "M4 x 10 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A116", + "url": "https://www.mcmaster.com/91292A116/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_10" + }, + "name": "M4 x 10 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A212", + "url": "https://www.mcmaster.com/90128A212/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_10" + }, + "name": "M4 x 10 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A144", + "url": "https://www.mcmaster.com/91290A144/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_12" + }, + "name": "M4 x 12 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A117", + "url": "https://www.mcmaster.com/91292A117/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_12" + }, + "name": "M4 x 12 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A214", + "url": "https://www.mcmaster.com/90128A214/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_12" + }, + "name": "M4 x 12 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A148", + "url": "https://www.mcmaster.com/91290A148/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_14" + }, + "name": "M4 x 14 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A038", + "url": "https://www.mcmaster.com/91292A038/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_14" + }, + "name": "M4 x 14 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A150", + "url": "https://www.mcmaster.com/91290A150/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_15" + }, + "name": "M4 x 15 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "90751A177", + "url": "https://www.mcmaster.com/90751A177/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_15" + }, + "name": "M4 x 15 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A332", + "url": "https://www.mcmaster.com/90128A332/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_15" + }, + "name": "M4 x 15 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A306", + "url": "https://www.mcmaster.com/91290A306/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_16" + }, + "name": "M4 x 16 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A118", + "url": "https://www.mcmaster.com/91292A118/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_16" + }, + "name": "M4 x 16 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A215", + "url": "https://www.mcmaster.com/90128A215/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_16" + }, + "name": "M4 x 16 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A154", + "url": "https://www.mcmaster.com/91290A154/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_18" + }, + "name": "M4 x 18 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A043", + "url": "https://www.mcmaster.com/91292A043/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_18" + }, + "name": "M4 x 18 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A164", + "url": "https://www.mcmaster.com/91290A164/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_20" + }, + "name": "M4 x 20 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A121", + "url": "https://www.mcmaster.com/91292A121/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_20" + }, + "name": "M4 x 20 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A216", + "url": "https://www.mcmaster.com/90128A216/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_20" + }, + "name": "M4 x 20 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A168", + "url": "https://www.mcmaster.com/91290A168/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_22" + }, + "name": "M4 x 22 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A806", + "url": "https://www.mcmaster.com/91292A806/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_22" + }, + "name": "M4 x 22 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A333", + "url": "https://www.mcmaster.com/90128A333/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_22" + }, + "name": "M4 x 22 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A631", + "url": "https://www.mcmaster.com/91290A631/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_25" + }, + "name": "M4 x 25 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A122", + "url": "https://www.mcmaster.com/91292A122/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_25" + }, + "name": "M4 x 25 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A217", + "url": "https://www.mcmaster.com/90128A217/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_25" + }, + "name": "M4 x 25 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A637", + "url": "https://www.mcmaster.com/91290A637/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_30" + }, + "name": "M4 x 30 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A130", + "url": "https://www.mcmaster.com/91292A130/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_30" + }, + "name": "M4 x 30 mm Socket Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "90128A219", + "url": "https://www.mcmaster.com/90128A219/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_30", + "fullyThreaded": "false" + }, + "name": "M4 x 30 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A639", + "url": "https://www.mcmaster.com/91290A639/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_30", + "fullyThreaded": "true" + }, + "name": "M4 x 30 mm Socket Head Screw (Black, fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "91290A172", + "url": "https://www.mcmaster.com/91290A172/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_35" + }, + "name": "M4 x 35 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A131", + "url": "https://www.mcmaster.com/91292A131/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_35", + "fullyThreaded": "false" + }, + "name": "M4 x 35 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A641", + "url": "https://www.mcmaster.com/91290A641/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_35", + "fullyThreaded": "true" + }, + "name": "M4 x 35 mm Socket Head Screw (Black, fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "91290A173", + "url": "https://www.mcmaster.com/91290A173/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_40" + }, + "name": "M4 x 40 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A132", + "url": "https://www.mcmaster.com/91292A132/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_40", + "fullyThreaded": "false" + }, + "name": "M4 x 40 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A184", + "url": "https://www.mcmaster.com/91290A184/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_40", + "fullyThreaded": "true" + }, + "name": "M4 x 40 mm Socket Head Screw (Black, fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "91290A174", + "url": "https://www.mcmaster.com/91290A174/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_45" + }, + "name": "M4 x 45 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A133", + "url": "https://www.mcmaster.com/91292A133/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_45", + "fullyThreaded": "false" + }, + "name": "M4 x 45 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A145", + "url": "https://www.mcmaster.com/91290A145/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_45", + "fullyThreaded": "true" + }, + "name": "M4 x 45 mm Socket Head Screw (Black, fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "91290A175", + "url": "https://www.mcmaster.com/91290A175/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_50" + }, + "name": "M4 x 50 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A140", + "url": "https://www.mcmaster.com/91292A140/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_50", + "fullyThreaded": "false" + }, + "name": "M4 x 50 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A186", + "url": "https://www.mcmaster.com/91290A186/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_50", + "fullyThreaded": "true" + }, + "name": "M4 x 50 mm Socket Head Screw (Black, fully threaded)", + "vendor": "McMaster-Carr", + "partNumber": "91290A193", + "url": "https://www.mcmaster.com/91290A193/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_55" + }, + "name": "M4 x 55 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A268", + "url": "https://www.mcmaster.com/91292A268/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_55" + }, + "name": "M4 x 55 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A645", + "url": "https://www.mcmaster.com/91290A645/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_60" + }, + "name": "M4 x 60 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A048", + "url": "https://www.mcmaster.com/91292A048/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_60" + }, + "name": "M4 x 60 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A647", + "url": "https://www.mcmaster.com/91290A647/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_65" + }, + "name": "M4 x 65 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A317", + "url": "https://www.mcmaster.com/91292A317/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_65" + }, + "name": "M4 x 65 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A083", + "url": "https://www.mcmaster.com/91290A083/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_70" + }, + "name": "M4 x 70 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A269", + "url": "https://www.mcmaster.com/91292A269/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_70" + }, + "name": "M4 x 70 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A651", + "url": "https://www.mcmaster.com/91290A651/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_75" + }, + "name": "M4 x 75 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A318", + "url": "https://www.mcmaster.com/91292A318/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_75" + }, + "name": "M4 x 75 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A085", + "url": "https://www.mcmaster.com/91290A085/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_80" + }, + "name": "M4 x 80 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A271", + "url": "https://www.mcmaster.com/91292A271/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_80" + }, + "name": "M4 x 80 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A653", + "url": "https://www.mcmaster.com/91290A653/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_85" + }, + "name": "M4 x 85 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A838", + "url": "https://www.mcmaster.com/91292A838/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_85" + }, + "name": "M4 x 85 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A574", + "url": "https://www.mcmaster.com/91290A574/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_90" + }, + "name": "M4 x 90 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A319", + "url": "https://www.mcmaster.com/91292A319/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_90" + }, + "name": "M4 x 90 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A183", + "url": "https://www.mcmaster.com/91290A183/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_100" + }, + "name": "M4 x 100 mm Socket Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91292A039", + "url": "https://www.mcmaster.com/91292A039/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_100" + }, + "name": "M4 x 100 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A185", + "url": "https://www.mcmaster.com/91290A185/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "length": "MM_110" + }, + "name": "M4 x 110 mm Socket Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91290A575", + "url": "https://www.mcmaster.com/91290A575/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_4" + }, + "name": "M4 x 4 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A476", + "url": "https://www.mcmaster.com/92095A476/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_5" + }, + "name": "M4 x 5 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A477", + "url": "https://www.mcmaster.com/92095A477/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_5" + }, + "name": "M4 x 5 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A726", + "url": "https://www.mcmaster.com/91306A726/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_5" + }, + "name": "M4 x 5 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A136", + "url": "https://www.mcmaster.com/91239A136/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_6" + }, + "name": "M4 x 6 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A188", + "url": "https://www.mcmaster.com/92095A188/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_6" + }, + "name": "M4 x 6 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A659", + "url": "https://www.mcmaster.com/91306A659/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_8" + }, + "name": "M4 x 8 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A189", + "url": "https://www.mcmaster.com/92095A189/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_8" + }, + "name": "M4 x 8 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A660", + "url": "https://www.mcmaster.com/91306A660/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_8" + }, + "name": "M4 x 8 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A140", + "url": "https://www.mcmaster.com/91239A140/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_10" + }, + "name": "M4 x 10 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A190", + "url": "https://www.mcmaster.com/92095A190/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_10" + }, + "name": "M4 x 10 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A727", + "url": "https://www.mcmaster.com/91306A727/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_10" + }, + "name": "M4 x 10 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A144", + "url": "https://www.mcmaster.com/91239A144/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_12" + }, + "name": "M4 x 12 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A192", + "url": "https://www.mcmaster.com/92095A192/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_12" + }, + "name": "M4 x 12 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A661", + "url": "https://www.mcmaster.com/91306A661/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_12" + }, + "name": "M4 x 12 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A148", + "url": "https://www.mcmaster.com/91239A148/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_14" + }, + "name": "M4 x 14 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A193", + "url": "https://www.mcmaster.com/92095A193/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_14" + }, + "name": "M4 x 14 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A728", + "url": "https://www.mcmaster.com/91306A728/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_14" + }, + "name": "M4 x 14 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A149", + "url": "https://www.mcmaster.com/91239A149/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_15" + }, + "name": "M4 x 15 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A125", + "url": "https://www.mcmaster.com/92095A125/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_16" + }, + "name": "M4 x 16 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A194", + "url": "https://www.mcmaster.com/92095A194/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_16" + }, + "name": "M4 x 16 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A662", + "url": "https://www.mcmaster.com/91306A662/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_16" + }, + "name": "M4 x 16 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A150", + "url": "https://www.mcmaster.com/91239A150/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_18" + }, + "name": "M4 x 18 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A478", + "url": "https://www.mcmaster.com/92095A478/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_18" + }, + "name": "M4 x 18 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A151", + "url": "https://www.mcmaster.com/91239A151/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_20" + }, + "name": "M4 x 20 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A196", + "url": "https://www.mcmaster.com/92095A196/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_20" + }, + "name": "M4 x 20 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A663", + "url": "https://www.mcmaster.com/91306A663/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_20" + }, + "name": "M4 x 20 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A152", + "url": "https://www.mcmaster.com/91239A152/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_22" + }, + "name": "M4 x 22 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A479", + "url": "https://www.mcmaster.com/92095A479/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_25" + }, + "name": "M4 x 25 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A197", + "url": "https://www.mcmaster.com/92095A197/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_25" + }, + "name": "M4 x 25 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A154", + "url": "https://www.mcmaster.com/91239A154/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_30" + }, + "name": "M4 x 30 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A198", + "url": "https://www.mcmaster.com/92095A198/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_30" + }, + "name": "M4 x 30 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A729", + "url": "https://www.mcmaster.com/91306A729/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_30" + }, + "name": "M4 x 30 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A156", + "url": "https://www.mcmaster.com/91239A156/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_35" + }, + "name": "M4 x 35 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A199", + "url": "https://www.mcmaster.com/92095A199/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_35" + }, + "name": "M4 x 35 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A731", + "url": "https://www.mcmaster.com/91306A731/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_35" + }, + "name": "M4 x 35 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A158", + "url": "https://www.mcmaster.com/91239A158/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_40" + }, + "name": "M4 x 40 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A200", + "url": "https://www.mcmaster.com/92095A200/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "length": "MM_40" + }, + "name": "M4 x 40 mm Button Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91239A160", + "url": "https://www.mcmaster.com/91239A160/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_45" + }, + "name": "M4 x 45 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A205", + "url": "https://www.mcmaster.com/92095A205/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_50" + }, + "name": "M4 x 50 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A209", + "url": "https://www.mcmaster.com/92095A209/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "length": "MM_50" + }, + "name": "M4 x 50 mm Button Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91306A732", + "url": "https://www.mcmaster.com/91306A732/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_55" + }, + "name": "M4 x 55 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A330", + "url": "https://www.mcmaster.com/92095A330/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_60" + }, + "name": "M4 x 60 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A480", + "url": "https://www.mcmaster.com/92095A480/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_65" + }, + "name": "M4 x 65 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A126", + "url": "https://www.mcmaster.com/92095A126/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_70" + }, + "name": "M4 x 70 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A172", + "url": "https://www.mcmaster.com/92095A172/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "length": "MM_80" + }, + "name": "M4 x 80 mm Button Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92095A173", + "url": "https://www.mcmaster.com/92095A173/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_5" + }, + "name": "M4 x 5 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A185", + "url": "https://www.mcmaster.com/92125A185/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_6" + }, + "name": "M4 x 6 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A186", + "url": "https://www.mcmaster.com/92125A186/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_6" + }, + "name": "M4 x 6 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A826", + "url": "https://www.mcmaster.com/91263A826/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_6" + }, + "name": "M4 x 6 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A186", + "url": "https://www.mcmaster.com/91294A186/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_8" + }, + "name": "M4 x 8 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A188", + "url": "https://www.mcmaster.com/92125A188/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_8" + }, + "name": "M4 x 8 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A827", + "url": "https://www.mcmaster.com/91263A827/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_8" + }, + "name": "M4 x 8 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A188", + "url": "https://www.mcmaster.com/91294A188/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_10" + }, + "name": "M4 x 10 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A190", + "url": "https://www.mcmaster.com/92125A190/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_10" + }, + "name": "M4 x 10 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A828", + "url": "https://www.mcmaster.com/91263A828/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_10" + }, + "name": "M4 x 10 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A190", + "url": "https://www.mcmaster.com/91294A190/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_12" + }, + "name": "M4 x 12 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A192", + "url": "https://www.mcmaster.com/92125A192/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_12" + }, + "name": "M4 x 12 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A829", + "url": "https://www.mcmaster.com/91263A829/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_12" + }, + "name": "M4 x 12 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A192", + "url": "https://www.mcmaster.com/91294A192/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_14" + }, + "name": "M4 x 14 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A193", + "url": "https://www.mcmaster.com/92125A193/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_14" + }, + "name": "M4 x 14 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A193", + "url": "https://www.mcmaster.com/91294A193/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_15" + }, + "name": "M4 x 15 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A104", + "url": "https://www.mcmaster.com/92125A104/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_16" + }, + "name": "M4 x 16 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A194", + "url": "https://www.mcmaster.com/92125A194/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_16" + }, + "name": "M4 x 16 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A830", + "url": "https://www.mcmaster.com/91263A830/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_16" + }, + "name": "M4 x 16 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A194", + "url": "https://www.mcmaster.com/91294A194/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_18" + }, + "name": "M4 x 18 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A196", + "url": "https://www.mcmaster.com/92125A196/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_18" + }, + "name": "M4 x 18 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A869", + "url": "https://www.mcmaster.com/91263A869/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_18" + }, + "name": "M4 x 18 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A195", + "url": "https://www.mcmaster.com/91294A195/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_20" + }, + "name": "M4 x 20 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A198", + "url": "https://www.mcmaster.com/92125A198/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_20" + }, + "name": "M4 x 20 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A871", + "url": "https://www.mcmaster.com/91263A871/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_20" + }, + "name": "M4 x 20 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A196", + "url": "https://www.mcmaster.com/91294A196/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_22" + }, + "name": "M4 x 22 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A201", + "url": "https://www.mcmaster.com/92125A201/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_22" + }, + "name": "M4 x 22 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A197", + "url": "https://www.mcmaster.com/91294A197/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_25" + }, + "name": "M4 x 25 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A202", + "url": "https://www.mcmaster.com/92125A202/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_25" + }, + "name": "M4 x 25 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A872", + "url": "https://www.mcmaster.com/91263A872/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_25" + }, + "name": "M4 x 25 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A198", + "url": "https://www.mcmaster.com/91294A198/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_30" + }, + "name": "M4 x 30 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A203", + "url": "https://www.mcmaster.com/92125A203/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_30" + }, + "name": "M4 x 30 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A873", + "url": "https://www.mcmaster.com/91263A873/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_30" + }, + "name": "M4 x 30 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A200", + "url": "https://www.mcmaster.com/91294A200/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_35" + }, + "name": "M4 x 35 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A204", + "url": "https://www.mcmaster.com/92125A204/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_35" + }, + "name": "M4 x 35 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A874", + "url": "https://www.mcmaster.com/91263A874/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_35" + }, + "name": "M4 x 35 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A202", + "url": "https://www.mcmaster.com/91294A202/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_40" + }, + "name": "M4 x 40 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A205", + "url": "https://www.mcmaster.com/92125A205/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_40" + }, + "name": "M4 x 40 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A875", + "url": "https://www.mcmaster.com/91263A875/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_40" + }, + "name": "M4 x 40 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A204", + "url": "https://www.mcmaster.com/91294A204/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_45" + }, + "name": "M4 x 45 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A207", + "url": "https://www.mcmaster.com/92125A207/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_45" + }, + "name": "M4 x 45 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A876", + "url": "https://www.mcmaster.com/91263A876/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_45" + }, + "name": "M4 x 45 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A484", + "url": "https://www.mcmaster.com/91294A484/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_50" + }, + "name": "M4 x 50 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A209", + "url": "https://www.mcmaster.com/92125A209/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "length": "MM_50" + }, + "name": "M4 x 50 mm Flat Head Screw (Zinc plated)", + "vendor": "McMaster-Carr", + "partNumber": "91263A877", + "url": "https://www.mcmaster.com/91263A877/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "length": "MM_50" + }, + "name": "M4 x 50 mm Flat Head Screw (Black)", + "vendor": "McMaster-Carr", + "partNumber": "91294A537", + "url": "https://www.mcmaster.com/91294A537/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_55" + }, + "name": "M4 x 55 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A373", + "url": "https://www.mcmaster.com/92125A373/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_60" + }, + "name": "M4 x 60 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A221", + "url": "https://www.mcmaster.com/92125A221/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_65" + }, + "name": "M4 x 65 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A105", + "url": "https://www.mcmaster.com/92125A105/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "length": "MM_70" + }, + "name": "M4 x 70 mm Flat Head Screw (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "92125A106", + "url": "https://www.mcmaster.com/92125A106/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M3", + "length": "MM_6" + }, + "name": "M3 x 6 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0003-0006", + "url": "https://www.gobilda.com/m3-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M3", + "length": "MM_8" + }, + "name": "M3 x 8 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0003-0008", + "url": "https://www.gobilda.com/m3-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M3", + "length": "MM_10" + }, + "name": "M3 x 10 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0003-0010", + "url": "https://www.gobilda.com/m3-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M3", + "length": "MM_12" + }, + "name": "M3 x 12 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0003-0012", + "url": "https://www.gobilda.com/m3-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_5" + }, + "name": "M4 x 5 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0005", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_6" + }, + "name": "M4 x 6 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0006", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_7" + }, + "name": "M4 x 7 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0007", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_8" + }, + "name": "M4 x 8 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0008", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_9" + }, + "name": "M4 x 9 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0009", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_10" + }, + "name": "M4 x 10 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0010", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_11" + }, + "name": "M4 x 11 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0011", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_12" + }, + "name": "M4 x 12 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0012", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_14" + }, + "name": "M4 x 14 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0014", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_16" + }, + "name": "M4 x 16 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0016", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_18" + }, + "name": "M4 x 18 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0018", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_20" + }, + "name": "M4 x 20 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0020", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_22" + }, + "name": "M4 x 22 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0022", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_25" + }, + "name": "M4 x 25 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0025", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_30" + }, + "name": "M4 x 30 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0030", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_35" + }, + "name": "M4 x 35 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0035", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_40" + }, + "name": "M4 x 40 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0040", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_45" + }, + "name": "M4 x 45 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0045", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_50" + }, + "name": "M4 x 50 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0050", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_55" + }, + "name": "M4 x 55 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0055", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_60" + }, + "name": "M4 x 60 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0060", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "length": "MM_75" + }, + "name": "M4 x 75 mm Socket Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2800-0004-0075", + "url": "https://www.gobilda.com/m4-socket-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_5" + }, + "name": "M4 x 5 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0005", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_6" + }, + "name": "M4 x 6 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0006", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_8" + }, + "name": "M4 x 8 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0008", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_10" + }, + "name": "M4 x 10 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0010", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_12" + }, + "name": "M4 x 12 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0012", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_14" + }, + "name": "M4 x 14 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0014", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_16" + }, + "name": "M4 x 16 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0016", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_18" + }, + "name": "M4 x 18 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0018", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_20" + }, + "name": "M4 x 20 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0020", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_22" + }, + "name": "M4 x 22 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0022", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_25" + }, + "name": "M4 x 25 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0025", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_30" + }, + "name": "M4 x 30 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0030", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_35" + }, + "name": "M4 x 35 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0035", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_40" + }, + "name": "M4 x 40 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0040", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_45" + }, + "name": "M4 x 45 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0045", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_50" + }, + "name": "M4 x 50 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0050", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_55" + }, + "name": "M4 x 55 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0055", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "length": "MM_60" + }, + "name": "M4 x 60 mm Button Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2802-0004-0060", + "url": "https://www.gobilda.com/m4-button-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "HEX", + "length": "MM_8" + }, + "name": "M4 x 8 mm Hex Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2813-0004-0008", + "url": "https://www.gobilda.com/m4-hex-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "HEX", + "length": "MM_10" + }, + "name": "M4 x 10 mm Hex Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2813-0004-0010", + "url": "https://www.gobilda.com/m4-hex-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "HEX", + "length": "MM_12" + }, + "name": "M4 x 12 mm Hex Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2813-0004-0012", + "url": "https://www.gobilda.com/m4-hex-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "size": "M4", + "head": "HEX", + "length": "MM_16" + }, + "name": "M4 x 16 mm Hex Head Screw (Zinc plated)", + "vendor": "goBILDA", + "partNumber": "2813-0004-0016", + "url": "https://www.gobilda.com/m4-hex-head-screws", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "length": "MM_6" + }, + "name": "M3 x 6 mm Hex Head Screw (Zinc plated)", + "vendor": "REV", + "partNumber": "REV-41-1713", + "url": "https://www.revrobotics.com/M3-Hex-Cap-Screws/", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "length": "MM_8" + }, + "name": "M3 x 8 mm Hex Head Screw (Zinc plated)", + "vendor": "REV", + "partNumber": "REV-41-1359", + "url": "https://www.revrobotics.com/M3-Hex-Cap-Screws/", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "length": "MM_10" + }, + "name": "M3 x 10 mm Hex Head Screw (Zinc plated)", + "vendor": "REV", + "partNumber": "REV-41-1123", + "url": "https://www.revrobotics.com/M3-Hex-Cap-Screws/", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "length": "MM_16" + }, + "name": "M3 x 16 mm Hex Head Screw (Zinc plated)", + "vendor": "REV", + "partNumber": "REV-41-1360", + "url": "https://www.revrobotics.com/M3-Hex-Cap-Screws/", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "length": "MM_20" + }, + "name": "M3 x 20 mm Hex Head Screw (Zinc plated)", + "vendor": "REV", + "partNumber": "REV-41-1124", + "url": "https://www.revrobotics.com/M3-Hex-Cap-Screws/", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "length": "MM_25" + }, + "name": "M3 x 25 mm Hex Head Screw (Zinc plated)", + "vendor": "REV", + "partNumber": "REV-41-1715", + "url": "https://www.revrobotics.com/M3-Hex-Cap-Screws/", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "length": "MM_35" + }, + "name": "M3 x 35 mm Hex Head Screw (Zinc plated)", + "vendor": "REV", + "partNumber": "REV-41-1125", + "url": "https://www.revrobotics.com/M3-Hex-Cap-Screws/", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_5" + }, + "name": "M3 x 5 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1675", + "url": "https://andymark.com/products/m3-0-5-x-5-mm-socket-head-cap-screw-with-nylon-patch", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_6" + }, + "name": "M3 x 6 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1254", + "url": "https://andymark.com/products/m3-0-5-x-6-mm-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_8" + }, + "name": "M3 x 8 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1500", + "url": "https://andymark.com/products/m3-0-5-x-8-mm-socket-head-cap-screw-with-thread-patch", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_10" + }, + "name": "M3 x 10 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1021", + "url": "https://andymark.com/products/m3-0-5-x-10-mm-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_12" + }, + "name": "M3 x 12 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1706", + "url": "https://andymark.com/products/m3-0-5-x-12-mm-socket-head-cap-screw-with-nylon-patch", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_14" + }, + "name": "M3 x 14 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1367", + "url": "https://andymark.com/products/m3-0-5-x-14-mm-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_30" + }, + "name": "M3 x 30 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1578", + "url": "https://andymark.com/products/m3-0-5-x-30-mm-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_35" + }, + "name": "M3 x 35 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1671", + "url": "https://andymark.com/products/m3-0-5-x-35-mm-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_45" + }, + "name": "M3 x 45 mm Socket Head Screw (Stainless steel)", + "vendor": "AndyMark", + "partNumber": "am-1659", + "url": "https://andymark.com/products/m3-0-5-x-45-mm-socket-head-cap-screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_55" + }, + "name": "M3 x 55 mm Socket Head Screw (Stainless steel)", + "vendor": "AndyMark", + "partNumber": "am-1379", + "url": "https://andymark.com/products/m3-0-5-x-55-mm-socket-head-cap-screw", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "FLAT", + "length": "MM_5" + }, + "name": "M3 x 5 mm Flat Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1724", + "url": "https://andymark.com/products/m3-0-5-x-5-mm-zinc-flat-head-cap-screw-with-nylon-patch", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "FLAT", + "length": "MM_8" + }, + "name": "M3 x 8 mm Flat Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1723", + "url": "https://andymark.com/products/m3-0-5-x-8mm-flat-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "head": "FLAT", + "length": "MM_12" + }, + "name": "M3 x 12 mm Flat Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1765", + "url": "https://andymark.com/products/hardware-screw-fhsc-m3-0-5-x-12mm-steel-zinc-plated", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_5" + }, + "name": "M4 x 5 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1343", + "url": "https://andymark.com/products/m4-0-7-x-5-mm-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_10" + }, + "name": "M4 x 10 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1264", + "url": "https://andymark.com/products/m4-0-7-x-10-mm-socket-head-cap-screw-1", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_25" + }, + "name": "M4 x 25 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1532", + "url": "https://andymark.com/products/m4-0-7-x-25-mm-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_30" + }, + "name": "M4 x 30 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1533", + "url": "https://andymark.com/products/m4-0-7-x-30-mm-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_40" + }, + "name": "M4 x 40 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1422", + "url": "https://andymark.com/products/m4-0-7-x-40-mm-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "length": "MM_50" + }, + "name": "M4 x 50 mm Socket Head Screw (Zinc plated)", + "vendor": "AndyMark", + "partNumber": "am-1401", + "url": "https://andymark.com/products/m4-0-7-x-50-mm-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK" + }, + "name": "M4 x 55 mm Socket Head Screw (Black)", + "vendor": "AndyMark", + "partNumber": "am-1251", + "url": "https://andymark.com/products/m4-0-7-x-55-mm-socket-head-cap-screw", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M4", + "head": "BUTTON" + }, + "name": "M4 x 35 mm Button Head Screw (Black)", + "vendor": "AndyMark", + "partNumber": "am-1441", + "url": "https://andymark.com/products/m4-0-7-x-35-mm-black-oxide-button-head-cap-screw-1", + "material": "Steel" + } + ] + }, + "nut": { + "feature": "fastenerNut", + "mateConnector": "mateConnector", + "configuration": { + "btType": "BTConfigurationUpdateCall-2933", + "configurationParameters": [ + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "vendor", + "parameterName": "Vendor", + "enumName": "vendor_conf", + "namespace": "", + "defaultValue": "GENERIC", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "GENERIC", + "optionName": "Generic" + }, + { + "btType": "BTMEnumOption-592", + "option": "MCMASTER", + "optionName": "McMaster-Carr" + }, + { + "btType": "BTMEnumOption-592", + "option": "GOBILDA", + "optionName": "goBILDA" + }, + { + "btType": "BTMEnumOption-592", + "option": "REV", + "optionName": "REV" + }, + { + "btType": "BTMEnumOption-592", + "option": "ANDYMARK", + "optionName": "AndyMark" + } + ] + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "size", + "parameterName": "Size", + "enumName": "size_conf", + "namespace": "", + "defaultValue": "M4", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "M3", + "optionName": "M3 x 0.5" + }, + { + "btType": "BTMEnumOption-592", + "option": "M4", + "optionName": "M4 x 0.7" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "M3", + "M4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "type", + "parameterName": "Type", + "enumName": "type_conf", + "namespace": "", + "defaultValue": "NYLOCK", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "NYLOCK", + "optionName": "Nylock" + }, + { + "btType": "BTMEnumOption-592", + "option": "HEX", + "optionName": "Hex" + }, + { + "btType": "BTMEnumOption-592", + "option": "THIN_HEX", + "optionName": "Thin hex" + }, + { + "btType": "BTMEnumOption-592", + "option": "SQUARE", + "optionName": "Square" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "NYLOCK", + "HEX" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "NYLOCK", + "HEX" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GOBILDA", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "REV", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "NYLOCK", + "HEX", + "THIN_HEX" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "ANDYMARK", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + } + ] + } + ] + } + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "SQUARE" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GOBILDA", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "finish", + "parameterName": "Finish", + "enumName": "finish_conf", + "namespace": "", + "defaultValue": "ZINC_PLATED", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "ZINC_PLATED", + "optionName": "Zinc plated" + }, + { + "btType": "BTMEnumOption-592", + "option": "STAINLESS", + "optionName": "Stainless steel" + }, + { + "btType": "BTMEnumOption-592", + "option": "BLACK", + "optionName": "Black" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "ZINC_PLATED", + "STAINLESS", + "BLACK" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "type", + "value": "NYLOCK", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "type", + "value": "HEX", + "inArray": false + } + ] + } + ] + } + } + ] + } + } + ] + }, + "location": null, + "records": [ + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "type": "NYLOCK" + }, + "name": "M3 Nylock Nut", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M3", + "type": "HEX" + }, + "name": "M3 Hex Nut", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "type": "NYLOCK" + }, + "name": "M4 Nylock Nut", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4", + "type": "HEX" + }, + "name": "M4 Hex Nut", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "type": "NYLOCK", + "finish": "ZINC_PLATED" + }, + "name": "M3 Nylock Nut", + "vendor": "McMaster-Carr", + "partNumber": "90576A102", + "url": "https://www.mcmaster.com/90576A102/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "type": "NYLOCK", + "finish": "STAINLESS" + }, + "name": "M3 Nylock Nut (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "93625A100", + "url": "https://www.mcmaster.com/93625A100/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "type": "NYLOCK", + "finish": "BLACK" + }, + "name": "M3 Nylock Nut (Black)", + "vendor": "McMaster-Carr", + "partNumber": "93625A223", + "url": "https://www.mcmaster.com/93625A223/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "type": "HEX", + "finish": "ZINC_PLATED" + }, + "name": "M3 Hex Nut", + "vendor": "McMaster-Carr", + "partNumber": "90591A250", + "url": "https://www.mcmaster.com/90591A250/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "type": "HEX", + "finish": "STAINLESS" + }, + "name": "M3 Hex Nut (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91828A211", + "url": "https://www.mcmaster.com/91828A211/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "type": "HEX", + "finish": "BLACK" + }, + "name": "M3 Hex Nut (Black)", + "vendor": "McMaster-Carr", + "partNumber": "98676A100", + "url": "https://www.mcmaster.com/98676A100/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "type": "NYLOCK", + "finish": "ZINC_PLATED" + }, + "name": "M4 Nylock Nut", + "vendor": "McMaster-Carr", + "partNumber": "90576A103", + "url": "https://www.mcmaster.com/90576A103/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "type": "NYLOCK", + "finish": "STAINLESS" + }, + "name": "M4 Nylock Nut (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "93625A150", + "url": "https://www.mcmaster.com/93625A150/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "type": "NYLOCK", + "finish": "BLACK" + }, + "name": "M4 Nylock Nut (Black)", + "vendor": "McMaster-Carr", + "partNumber": "93625A224", + "url": "https://www.mcmaster.com/93625A224/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "type": "HEX", + "finish": "ZINC_PLATED" + }, + "name": "M4 Hex Nut", + "vendor": "McMaster-Carr", + "partNumber": "90591A255", + "url": "https://www.mcmaster.com/90591A255/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "type": "HEX", + "finish": "STAINLESS" + }, + "name": "M4 Hex Nut (Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "91828A231", + "url": "https://www.mcmaster.com/91828A231/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "type": "HEX", + "finish": "BLACK" + }, + "name": "M4 Hex Nut (Black)", + "vendor": "McMaster-Carr", + "partNumber": "98676A200", + "url": "https://www.mcmaster.com/98676A200/", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "type": "NYLOCK" + }, + "name": "M4 Nylock Nut", + "vendor": "goBILDA", + "partNumber": "2812-0004-0007", + "url": "https://www.gobilda.com/nuts/", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "type": "HEX" + }, + "name": "M4 Hex Nut", + "vendor": "goBILDA", + "partNumber": "2811-0004-0007", + "url": "https://www.gobilda.com/nuts/", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "type": "SQUARE" + }, + "name": "M4 Square Nut", + "vendor": "goBILDA", + "partNumber": "2803-0007-0007", + "url": "https://www.gobilda.com/nuts/", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "type": "NYLOCK" + }, + "name": "M3 Nylock Nut", + "vendor": "REV", + "partNumber": "REV-41-1361", + "url": "https://www.revrobotics.com/M3-Nuts/", + "material": "Steel" + }, + { + "values": { + "vendor": "REV", + "type": "HEX" + }, + "name": "M3 Hex Nut", + "vendor": "REV", + "partNumber": "REV-41-1126", + "url": "https://www.revrobotics.com/M3-Nuts/", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "type": "NYLOCK" + }, + "name": "M3 Nylock Nut", + "vendor": "AndyMark", + "partNumber": "am-1023", + "url": "https://andymark.com/products/m3-0-5-nylock-nut", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "type": "HEX" + }, + "name": "M3 Hex Nut", + "vendor": "AndyMark", + "partNumber": "am-1386", + "url": "https://andymark.com/products/m3-nut", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M3", + "type": "THIN_HEX" + }, + "name": "M3 Thin Hex Nut", + "vendor": "AndyMark", + "partNumber": "am-1405", + "url": "https://andymark.com/products/m3-0-5-jam-nut", + "material": "Steel" + }, + { + "values": { + "vendor": "ANDYMARK", + "size": "M4" + }, + "name": "M4 Nylock Nut", + "vendor": "AndyMark", + "partNumber": "am-1435", + "url": "https://andymark.com/products/m4-0-7-nylock-nut", + "material": "Steel" + } + ] + }, + "washer": { + "feature": "fastenerWasher", + "mateConnector": "mateConnector", + "configuration": { + "btType": "BTConfigurationUpdateCall-2933", + "configurationParameters": [ + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "vendor", + "parameterName": "Vendor", + "enumName": "vendor_conf", + "namespace": "", + "defaultValue": "GENERIC", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "GENERIC", + "optionName": "Generic" + }, + { + "btType": "BTMEnumOption-592", + "option": "MCMASTER", + "optionName": "McMaster-Carr" + }, + { + "btType": "BTMEnumOption-592", + "option": "GOBILDA", + "optionName": "goBILDA" + }, + { + "btType": "BTMEnumOption-592", + "option": "REV", + "optionName": "REV" + } + ] + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "size", + "parameterName": "Size", + "enumName": "size_conf", + "namespace": "", + "defaultValue": "M4", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "M3", + "optionName": "M3 x 0.5" + }, + { + "btType": "BTMEnumOption-592", + "option": "M4", + "optionName": "M4 x 0.7" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "M3", + "M4" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GENERIC", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "type", + "parameterName": "Type", + "enumName": "type_conf", + "namespace": "", + "defaultValue": "MM_8_X_1", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "MM_8_X_1", + "optionName": "8 mm OD x 1 mm" + }, + { + "btType": "BTMEnumOption-592", + "option": "MM_10_9_X_1_5", + "optionName": "10.9 mm OD x 1.5 mm" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "MM_8_X_1", + "MM_10_9_X_1_5" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "GOBILDA", + "inArray": false + } + ] + } + ] + } + } + ] + } + }, + { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": "finish", + "parameterName": "Finish", + "enumName": "finish_conf", + "namespace": "", + "defaultValue": "ZINC_PLATED", + "options": [ + { + "btType": "BTMEnumOption-592", + "option": "ZINC_PLATED", + "optionName": "Zinc plated" + }, + { + "btType": "BTMEnumOption-592", + "option": "STAINLESS", + "optionName": "Stainless steel" + }, + { + "btType": "BTMEnumOption-592", + "option": "BLACK", + "optionName": "Black" + } + ], + "enumOptionVisibilityConditions": { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": [ + "ZINC_PLATED", + "STAINLESS", + "BLACK" + ], + "condition": { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "vendor", + "value": "MCMASTER", + "inArray": false + } + ] + }, + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M3", + "inArray": false + }, + { + "btType": "BTParameterVisibilityOnEqual-180", + "parameterId": "size", + "value": "M4", + "inArray": false + } + ] + } + ] + } + } + ] + } + } + ] + }, + "location": null, + "records": [ + { + "values": { + "vendor": "GENERIC", + "size": "M3" + }, + "name": "M3 Washer (7 mm OD x 0.5 mm)", + "material": "Steel" + }, + { + "values": { + "vendor": "GENERIC", + "size": "M4" + }, + "name": "M4 Washer (9 mm OD x 0.8 mm)", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "finish": "ZINC_PLATED" + }, + "name": "M3 Washer (7 mm OD x 0.5 mm)", + "vendor": "McMaster-Carr", + "partNumber": "91166A210", + "url": "https://www.mcmaster.com/91166A210/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "finish": "STAINLESS" + }, + "name": "M3 Washer (7 mm OD x 0.5 mm, Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "93475A210", + "url": "https://www.mcmaster.com/93475A210/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M3", + "finish": "BLACK" + }, + "name": "M3 Washer (7 mm OD x 0.5 mm, Black)", + "vendor": "McMaster-Carr", + "partNumber": "98269A420", + "url": "https://www.mcmaster.com/98269A420/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "finish": "ZINC_PLATED" + }, + "name": "M4 Washer (9 mm OD x 0.9 mm)", + "vendor": "McMaster-Carr", + "partNumber": "91166A230", + "url": "https://www.mcmaster.com/91166A230/", + "material": "Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "finish": "STAINLESS" + }, + "name": "M4 Washer (9 mm OD x 0.9 mm, Stainless steel)", + "vendor": "McMaster-Carr", + "partNumber": "93475A230", + "url": "https://www.mcmaster.com/93475A230/", + "material": "Stainless Steel" + }, + { + "values": { + "vendor": "MCMASTER", + "size": "M4", + "finish": "BLACK" + }, + "name": "M4 Washer (9 mm OD x 0.9 mm, Black)", + "vendor": "McMaster-Carr", + "partNumber": "98687A141", + "url": "https://www.mcmaster.com/98687A141/", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "type": "MM_8_X_1" + }, + "name": "M4 Washer (8 mm OD x 1 mm)", + "vendor": "goBILDA", + "partNumber": "2801-0004-0008", + "url": "https://www.gobilda.com/washers", + "material": "Steel" + }, + { + "values": { + "vendor": "GOBILDA", + "type": "MM_10_9_X_1_5" + }, + "name": "M4 Washer (10.9 mm OD x 1.5 mm)", + "vendor": "goBILDA", + "partNumber": "2801-0004-0011", + "url": "https://www.gobilda.com/washers", + "material": "Steel" + }, + { + "values": { + "vendor": "REV" + }, + "name": "M3 Washer (7 mm OD x 0.5 mm, Stainless steel)", + "vendor": "REV", + "partNumber": "REV-41-2886", + "url": "https://www.revrobotics.com/rev-41-2886/", + "material": "Stainless Steel" + } + ] + } + }, + "vendors": [ + { + "id": "GENERIC", + "name": "Generic" + }, + { + "id": "MCMASTER", + "name": "McMaster-Carr" + }, + { + "id": "GOBILDA", + "name": "goBILDA" + }, + { + "id": "REV", + "name": "REV" + }, + { + "id": "ANDYMARK", + "name": "AndyMark" + } + ], + "sizes": [ + { + "id": "M3", + "name": "M3 x 0.5", + "majorDiameter": 0.003, + "pitch": 0.0005, + "tapDrillDiameter": 0.0025, + "closeClearanceDiameter": 0.0032, + "freeClearanceDiameter": 0.0034 + }, + { + "id": "M4", + "name": "M4 x 0.7", + "majorDiameter": 0.004, + "pitch": 0.0007, + "tapDrillDiameter": 0.0033, + "closeClearanceDiameter": 0.0043, + "freeClearanceDiameter": 0.0045 + } + ], + "heads": [ + { + "id": "SOCKET", + "name": "Socket head", + "sizes": { + "M3": { + "diameter": 0.0055, + "height": 0.003, + "countersunk": false + }, + "M4": { + "diameter": 0.007, + "height": 0.004, + "countersunk": false + } + } + }, + { + "id": "BUTTON", + "name": "Button head", + "sizes": { + "M3": { + "diameter": 0.0057, + "height": 0.00165, + "countersunk": false + }, + "M4": { + "diameter": 0.0076, + "height": 0.0022, + "countersunk": false + } + } + }, + { + "id": "FLAT", + "name": "Flat head", + "sizes": { + "M3": { + "diameter": 0.006, + "height": 0.0017, + "countersunk": true + }, + "M4": { + "diameter": 0.008, + "height": 0.0023, + "countersunk": true + } + } + }, + { + "id": "HEX", + "name": "Hex head", + "sizes": { + "M3": { + "diameter": 0.0063509, + "height": 0.002, + "countersunk": false + }, + "M4": { + "diameter": 0.0080829, + "height": 0.0028, + "countersunk": false + } + } + } + ], + "screws": [ + { + "vendor": "GENERIC", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_3", + "name": "3 mm", + "length": 0.003, + "fullThreadChoice": false + }, + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + }, + { + "id": "MM_60", + "name": "60 mm", + "length": 0.06, + "fullThreadChoice": false + }, + { + "id": "MM_65", + "name": "65 mm", + "length": 0.065, + "fullThreadChoice": false + }, + { + "id": "MM_70", + "name": "70 mm", + "length": 0.07, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_3", + "name": "3 mm", + "length": 0.003, + "fullThreadChoice": false + }, + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "M3", + "head": "HEX", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_7", + "name": "7 mm", + "length": 0.007, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_9", + "name": "9 mm", + "length": 0.009, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_11", + "name": "11 mm", + "length": 0.011, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + }, + { + "id": "MM_60", + "name": "60 mm", + "length": 0.06, + "fullThreadChoice": false + }, + { + "id": "MM_65", + "name": "65 mm", + "length": 0.065, + "fullThreadChoice": false + }, + { + "id": "MM_70", + "name": "70 mm", + "length": 0.07, + "fullThreadChoice": false + }, + { + "id": "MM_75", + "name": "75 mm", + "length": 0.075, + "fullThreadChoice": false + }, + { + "id": "MM_80", + "name": "80 mm", + "length": 0.08, + "fullThreadChoice": false + }, + { + "id": "MM_85", + "name": "85 mm", + "length": 0.085, + "fullThreadChoice": false + }, + { + "id": "MM_90", + "name": "90 mm", + "length": 0.09, + "fullThreadChoice": false + }, + { + "id": "MM_100", + "name": "100 mm", + "length": 0.1, + "fullThreadChoice": false + }, + { + "id": "MM_110", + "name": "110 mm", + "length": 0.11, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + }, + { + "id": "MM_60", + "name": "60 mm", + "length": 0.06, + "fullThreadChoice": false + }, + { + "id": "MM_65", + "name": "65 mm", + "length": 0.065, + "fullThreadChoice": false + }, + { + "id": "MM_70", + "name": "70 mm", + "length": 0.07, + "fullThreadChoice": false + }, + { + "id": "MM_80", + "name": "80 mm", + "length": 0.08, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + }, + { + "id": "MM_60", + "name": "60 mm", + "length": 0.06, + "fullThreadChoice": false + }, + { + "id": "MM_65", + "name": "65 mm", + "length": 0.065, + "fullThreadChoice": false + }, + { + "id": "MM_70", + "name": "70 mm", + "length": 0.07, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GENERIC", + "size": "M4", + "head": "HEX", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_3", + "name": "3 mm", + "length": 0.003, + "fullThreadChoice": false + }, + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + }, + { + "id": "MM_60", + "name": "60 mm", + "length": 0.06, + "fullThreadChoice": false + }, + { + "id": "MM_65", + "name": "65 mm", + "length": 0.065, + "fullThreadChoice": false + }, + { + "id": "MM_70", + "name": "70 mm", + "length": 0.07, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M3", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": true + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + }, + { + "id": "MM_60", + "name": "60 mm", + "length": 0.06, + "fullThreadChoice": false + }, + { + "id": "MM_70", + "name": "70 mm", + "length": 0.07, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_3", + "name": "3 mm", + "length": 0.003, + "fullThreadChoice": false + }, + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M3", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M3", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + }, + { + "id": "MM_60", + "name": "60 mm", + "length": 0.06, + "fullThreadChoice": false + }, + { + "id": "MM_65", + "name": "65 mm", + "length": 0.065, + "fullThreadChoice": false + }, + { + "id": "MM_70", + "name": "70 mm", + "length": 0.07, + "fullThreadChoice": false + }, + { + "id": "MM_75", + "name": "75 mm", + "length": 0.075, + "fullThreadChoice": false + }, + { + "id": "MM_80", + "name": "80 mm", + "length": 0.08, + "fullThreadChoice": false + }, + { + "id": "MM_85", + "name": "85 mm", + "length": 0.085, + "fullThreadChoice": false + }, + { + "id": "MM_90", + "name": "90 mm", + "length": 0.09, + "fullThreadChoice": false + }, + { + "id": "MM_100", + "name": "100 mm", + "length": 0.1, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": true + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": true + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": true + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": true + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": true + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + }, + { + "id": "MM_60", + "name": "60 mm", + "length": 0.06, + "fullThreadChoice": false + }, + { + "id": "MM_65", + "name": "65 mm", + "length": 0.065, + "fullThreadChoice": false + }, + { + "id": "MM_70", + "name": "70 mm", + "length": 0.07, + "fullThreadChoice": false + }, + { + "id": "MM_75", + "name": "75 mm", + "length": 0.075, + "fullThreadChoice": false + }, + { + "id": "MM_80", + "name": "80 mm", + "length": 0.08, + "fullThreadChoice": false + }, + { + "id": "MM_85", + "name": "85 mm", + "length": 0.085, + "fullThreadChoice": false + }, + { + "id": "MM_90", + "name": "90 mm", + "length": 0.09, + "fullThreadChoice": false + }, + { + "id": "MM_100", + "name": "100 mm", + "length": 0.1, + "fullThreadChoice": false + }, + { + "id": "MM_110", + "name": "110 mm", + "length": 0.11, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_4", + "name": "4 mm", + "length": 0.004, + "fullThreadChoice": false + }, + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + }, + { + "id": "MM_60", + "name": "60 mm", + "length": 0.06, + "fullThreadChoice": false + }, + { + "id": "MM_65", + "name": "65 mm", + "length": 0.065, + "fullThreadChoice": false + }, + { + "id": "MM_70", + "name": "70 mm", + "length": 0.07, + "fullThreadChoice": false + }, + { + "id": "MM_80", + "name": "80 mm", + "length": 0.08, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_15", + "name": "15 mm", + "length": 0.015, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + }, + { + "id": "MM_60", + "name": "60 mm", + "length": 0.06, + "fullThreadChoice": false + }, + { + "id": "MM_65", + "name": "65 mm", + "length": 0.065, + "fullThreadChoice": false + }, + { + "id": "MM_70", + "name": "70 mm", + "length": 0.07, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "MCMASTER", + "size": "M4", + "head": "FLAT", + "finish": "BLACK", + "lengths": [ + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GOBILDA", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GOBILDA", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_7", + "name": "7 mm", + "length": 0.007, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_9", + "name": "9 mm", + "length": 0.009, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_11", + "name": "11 mm", + "length": 0.011, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + }, + { + "id": "MM_60", + "name": "60 mm", + "length": 0.06, + "fullThreadChoice": false + }, + { + "id": "MM_75", + "name": "75 mm", + "length": 0.075, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GOBILDA", + "size": "M4", + "head": "BUTTON", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_18", + "name": "18 mm", + "length": 0.018, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_22", + "name": "22 mm", + "length": 0.022, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + }, + { + "id": "MM_60", + "name": "60 mm", + "length": 0.06, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "GOBILDA", + "size": "M4", + "head": "HEX", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "REV", + "size": "M3", + "head": "HEX", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_16", + "name": "16 mm", + "length": 0.016, + "fullThreadChoice": false + }, + { + "id": "MM_20", + "name": "20 mm", + "length": 0.02, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "M3", + "head": "SOCKET", + "finish": "STAINLESS", + "lengths": [ + { + "id": "MM_45", + "name": "45 mm", + "length": 0.045, + "fullThreadChoice": false + }, + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "M3", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_6", + "name": "6 mm", + "length": 0.006, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + }, + { + "id": "MM_14", + "name": "14 mm", + "length": 0.014, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "M3", + "head": "FLAT", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_8", + "name": "8 mm", + "length": 0.008, + "fullThreadChoice": false + }, + { + "id": "MM_12", + "name": "12 mm", + "length": 0.012, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "M4", + "head": "SOCKET", + "finish": "ZINC_PLATED", + "lengths": [ + { + "id": "MM_5", + "name": "5 mm", + "length": 0.005, + "fullThreadChoice": false + }, + { + "id": "MM_10", + "name": "10 mm", + "length": 0.01, + "fullThreadChoice": false + }, + { + "id": "MM_25", + "name": "25 mm", + "length": 0.025, + "fullThreadChoice": false + }, + { + "id": "MM_30", + "name": "30 mm", + "length": 0.03, + "fullThreadChoice": false + }, + { + "id": "MM_40", + "name": "40 mm", + "length": 0.04, + "fullThreadChoice": false + }, + { + "id": "MM_50", + "name": "50 mm", + "length": 0.05, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "M4", + "head": "SOCKET", + "finish": "BLACK", + "lengths": [ + { + "id": "MM_55", + "name": "55 mm", + "length": 0.055, + "fullThreadChoice": false + } + ] + }, + { + "vendor": "ANDYMARK", + "size": "M4", + "head": "BUTTON", + "finish": "BLACK", + "lengths": [ + { + "id": "MM_35", + "name": "35 mm", + "length": 0.035, + "fullThreadChoice": false + } + ] + } + ], + "nutTypes": [ + { + "id": "NYLOCK", + "name": "Nylock" + }, + { + "id": "THIN_NYLOCK", + "name": "Thin nylock" + }, + { + "id": "HEX", + "name": "Hex" + }, + { + "id": "THIN_HEX", + "name": "Thin hex" + }, + { + "id": "SQUARE", + "name": "Square" + } + ], + "nuts": [ + { + "vendor": "GENERIC", + "size": "M3", + "type": "NYLOCK", + "acrossFlats": 0.0055, + "height": 0.004, + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "GENERIC", + "size": "M3", + "type": "HEX", + "acrossFlats": 0.0055, + "height": 0.0024, + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "GENERIC", + "size": "M4", + "type": "NYLOCK", + "acrossFlats": 0.007, + "height": 0.005, + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "GENERIC", + "size": "M4", + "type": "HEX", + "acrossFlats": 0.007, + "height": 0.0032, + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "MCMASTER", + "size": "M3", + "type": "NYLOCK", + "acrossFlats": 0.0055, + "height": 0.004, + "partNumber": "90576A102", + "url": "https://www.mcmaster.com/90576A102/", + "finishes": [ + "ZINC_PLATED", + "STAINLESS", + "BLACK" + ] + }, + { + "vendor": "MCMASTER", + "size": "M3", + "type": "HEX", + "acrossFlats": 0.0055, + "height": 0.0024, + "partNumber": "90591A250", + "url": "https://www.mcmaster.com/90591A250/", + "finishes": [ + "ZINC_PLATED", + "STAINLESS", + "BLACK" + ] + }, + { + "vendor": "MCMASTER", + "size": "M4", + "type": "NYLOCK", + "acrossFlats": 0.007, + "height": 0.005, + "partNumber": "90576A103", + "url": "https://www.mcmaster.com/90576A103/", + "finishes": [ + "ZINC_PLATED", + "STAINLESS", + "BLACK" + ] + }, + { + "vendor": "MCMASTER", + "size": "M4", + "type": "HEX", + "acrossFlats": 0.007, + "height": 0.0032, + "partNumber": "90591A255", + "url": "https://www.mcmaster.com/90591A255/", + "finishes": [ + "ZINC_PLATED", + "STAINLESS", + "BLACK" + ] + }, + { + "vendor": "GOBILDA", + "size": "M4", + "type": "NYLOCK", + "acrossFlats": 0.007, + "height": 0.00485, + "partNumber": "2812-0004-0007", + "url": "https://www.gobilda.com/nuts/", + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "GOBILDA", + "size": "M4", + "type": "HEX", + "acrossFlats": 0.007, + "height": 0.00275, + "partNumber": "2811-0004-0007", + "url": "https://www.gobilda.com/nuts/", + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "GOBILDA", + "size": "M4", + "type": "SQUARE", + "acrossFlats": 0.007, + "height": 0.003, + "partNumber": "2803-0007-0007", + "url": "https://www.gobilda.com/nuts/", + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "REV", + "size": "M3", + "type": "NYLOCK", + "acrossFlats": 0.0055, + "height": 0.004, + "partNumber": "REV-41-1361", + "url": "https://www.revrobotics.com/M3-Nuts/", + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "REV", + "size": "M3", + "type": "HEX", + "acrossFlats": 0.0055, + "height": 0.0024, + "partNumber": "REV-41-1126", + "url": "https://www.revrobotics.com/M3-Nuts/", + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "ANDYMARK", + "size": "M3", + "type": "NYLOCK", + "acrossFlats": 0.0055, + "height": 0.004, + "partNumber": "am-1023", + "url": "https://andymark.com/products/m3-0-5-nylock-nut", + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "ANDYMARK", + "size": "M3", + "type": "HEX", + "acrossFlats": 0.0055, + "height": 0.0024, + "partNumber": "am-1386", + "url": "https://andymark.com/products/m3-nut", + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "ANDYMARK", + "size": "M3", + "type": "THIN_HEX", + "acrossFlats": 0.0055, + "height": 0.0018, + "partNumber": "am-1405", + "url": "https://andymark.com/products/m3-0-5-jam-nut", + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "ANDYMARK", + "size": "M4", + "type": "NYLOCK", + "acrossFlats": 0.007, + "height": 0.005, + "partNumber": "am-1435", + "url": "https://andymark.com/products/m4-0-7-nylock-nut", + "finishes": [ + "ZINC_PLATED" + ] + } + ], + "washers": [ + { + "vendor": "GENERIC", + "size": "M3", + "type": "MM_7_X_0_5", + "name": "7 mm OD x 0.5 mm", + "innerDiameter": 0.0032, + "outerDiameter": 0.007, + "thickness": 0.0005, + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "GENERIC", + "size": "M4", + "type": "MM_9_X_0_8", + "name": "9 mm OD x 0.8 mm", + "innerDiameter": 0.0043, + "outerDiameter": 0.009, + "thickness": 0.0008, + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "MCMASTER", + "size": "M3", + "type": "MM_7_X_0_5", + "name": "7 mm OD x 0.5 mm", + "innerDiameter": 0.0032, + "outerDiameter": 0.007, + "thickness": 0.0005, + "finishes": [ + "ZINC_PLATED", + "STAINLESS", + "BLACK" + ] + }, + { + "vendor": "MCMASTER", + "size": "M4", + "type": "MM_9_X_0_9", + "name": "9 mm OD x 0.9 mm", + "innerDiameter": 0.0043, + "outerDiameter": 0.009, + "thickness": 0.0009, + "finishes": [ + "ZINC_PLATED", + "STAINLESS", + "BLACK" + ] + }, + { + "vendor": "GOBILDA", + "size": "M4", + "type": "MM_8_X_1", + "name": "8 mm OD x 1 mm", + "innerDiameter": 0.004, + "outerDiameter": 0.008, + "thickness": 0.001, + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "GOBILDA", + "size": "M4", + "type": "MM_10_9_X_1_5", + "name": "10.9 mm OD x 1.5 mm", + "innerDiameter": 0.00415, + "outerDiameter": 0.0109, + "thickness": 0.0015, + "finishes": [ + "ZINC_PLATED" + ] + }, + { + "vendor": "REV", + "size": "M3", + "type": "MM_7_X_0_5", + "name": "7 mm OD x 0.5 mm", + "innerDiameter": 0.0032, + "outerDiameter": 0.007, + "thickness": 0.0005, + "finishes": [ + "STAINLESS" + ] + } + ] +} diff --git a/featurescripts/fasteners/vendor/frcdesign-fasteners.json b/featurescripts/fasteners/vendor/frcdesign-fasteners.json new file mode 100644 index 00000000..3860af1b --- /dev/null +++ b/featurescripts/fasteners/vendor/frcdesign-fasteners.json @@ -0,0 +1,8958 @@ +{ + "source": "https://app.frcdesign.org/api/configuration/insertable/{id}?v=216 (frc-design-lib, Fasteners group)", + "parts": [ + { + "insertableId": "e204e867-14cd-43be-a825-2efe93691bb7", + "name": "#10-32 Bolt (MCM)", + "vendors": [ + "MCM" + ], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "6e6c74d5d39254a715417f0b", + "parameters": [ + { + "id": "List_TmRH7NJBvedWLl", + "name": "Head Type", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Socket", + "name": "Socket" + }, + { + "id": "Default", + "name": "Button" + }, + { + "id": "Flat", + "name": "Flat (Countersink)" + } + ], + "optionConditions": [] + }, + { + "id": "List_5GpG8SQ4jcTSSF", + "name": "Finish", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "Black Oxide" + }, + { + "id": "Zinc_Plates", + "name": "Zinc Plated" + } + ], + "optionConditions": [] + }, + { + "id": "List_rtxRa7CTeUKBGP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Socket" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8", + "options": [ + { + "id": "Default", + "name": "5/32\"" + }, + { + "id": "_3_16", + "name": "3/16\"" + }, + { + "id": "_1_4", + "name": "1/4\"" + }, + { + "id": "_5_16", + "name": "5/16\"" + }, + { + "id": "_3_8", + "name": "3/8\"" + }, + { + "id": "_7_16", + "name": "7/16\"" + }, + { + "id": "_1_2", + "name": "1/2\"" + }, + { + "id": "_9_16", + "name": "9/16\"" + }, + { + "id": "_5_8", + "name": "5/8\"" + }, + { + "id": "_11_16", + "name": "11/16\"" + }, + { + "id": "_3_4", + "name": "3/4\"" + }, + { + "id": "_7_8", + "name": "7/8\"" + }, + { + "id": "_1", + "name": "1\"" + }, + { + "id": "_1_1_80", + "name": "1-1/8\"" + }, + { + "id": "_1_1_4", + "name": "1-1/4\"" + }, + { + "id": "_1_3_8", + "name": "1-3/8\"" + }, + { + "id": "_1_1_2", + "name": "1-1/2\" Full Thread" + }, + { + "id": "_1_1_20", + "name": "1-1/2\" Partial Thread" + }, + { + "id": "_1_5_8", + "name": "1-5/8\"" + }, + { + "id": "_1_3_4", + "name": "1-3/4\" Full Thread" + }, + { + "id": "_1_3_40", + "name": "1-3/4\" Partial Thread" + }, + { + "id": "_1_7_8", + "name": "1-7/8\"" + }, + { + "id": "_2", + "name": "2\" Full Thread" + }, + { + "id": "_20", + "name": "2\" Partial Thread" + }, + { + "id": "_2_1_4", + "name": "2-1/4\" Full Thread" + }, + { + "id": "_2_1_40", + "name": "2-1/4\" Partial Thread" + }, + { + "id": "_2_1_2", + "name": "2-1/2\" Full Thread" + }, + { + "id": "_2_1_20", + "name": "2-1/2\" Partial Thread" + }, + { + "id": "_2_3_4", + "name": "2-3/4\" Full Thread" + }, + { + "id": "_2_3_40", + "name": "2-3/4\" Partial Thread" + }, + { + "id": "_3", + "name": "3\" Full Thread" + }, + { + "id": "_30", + "name": "3\" Partial Thread" + }, + { + "id": "_3_1_2", + "name": "3-1/2\" Full Thread" + }, + { + "id": "_3_1_20", + "name": "3-1/2\" Partial Thread" + }, + { + "id": "_3_3_4", + "name": "3-3/4\"" + }, + { + "id": "_4", + "name": "4\"" + }, + { + "id": "_4_1_2", + "name": "4-1/2\"" + }, + { + "id": "_5", + "name": "5\"" + }, + { + "id": "_5_1_2", + "name": "5-1/2\"" + }, + { + "id": "_6", + "name": "6\"" + }, + { + "id": "_6_1_2", + "name": "6-1/2\"" + }, + { + "id": "_7", + "name": "7\"" + }, + { + "id": "Dummy", + "name": "Dummy" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_3_16", + "_1_4", + "_5_16", + "_3_8", + "_7_16", + "_1_2", + "_9_16", + "_5_8", + "_11_16", + "_3_4", + "_7_8", + "_1", + "_1_1_80", + "_1_1_4", + "_1_3_8", + "_1_1_2", + "_1_1_20", + "_1_5_8", + "_1_3_4", + "_1_3_40", + "_1_7_8", + "_2", + "_20", + "_2_1_4", + "_2_1_40", + "_2_1_2", + "_2_1_20", + "_2_3_4", + "_2_3_40", + "_3", + "_30", + "_3_1_2", + "_3_1_20", + "_3_3_4", + "_4", + "_4_1_2", + "_5", + "_5_1_2", + "_6", + "_6_1_2", + "_7" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_3_16", + "_1_4", + "_5_16", + "_3_8", + "_7_16", + "_1_2", + "_9_16", + "_5_8", + "_3_4", + "_7_8", + "_1", + "_1_1_4", + "_1_3_8", + "_1_1_20", + "_1_3_40", + "_20", + "_2_1_40", + "_2_1_20", + "_2_3_40", + "_30", + "_3_1_20", + "_4" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_ztF5Nwo3ZVISRf", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Default" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8_", + "options": [ + { + "id": "Default", + "name": "1/8\"" + }, + { + "id": "_3_16_", + "name": "3/16\"" + }, + { + "id": "_1_4_", + "name": "1/4\"" + }, + { + "id": "_5_16_", + "name": "5/16\"" + }, + { + "id": "_3_8_", + "name": "3/8\"" + }, + { + "id": "_7_16_", + "name": "7/16\"" + }, + { + "id": "_1_2_", + "name": "1/2\"" + }, + { + "id": "_9_16_", + "name": "9/16\"" + }, + { + "id": "_5_8_", + "name": "5/8\"" + }, + { + "id": "_3_4_", + "name": "3/4\"" + }, + { + "id": "_7_8_", + "name": "7/8\"" + }, + { + "id": "_1_", + "name": "1\"" + }, + { + "id": "_1_125_", + "name": "1-1/8\"" + }, + { + "id": "_1_25_", + "name": "1-1/4\"" + }, + { + "id": "_1_375_", + "name": "1-3/8\"" + }, + { + "id": "_1_5_", + "name": "1-1/2\"" + }, + { + "id": "_1_625_", + "name": "1-5/8\"" + }, + { + "id": "_1_75_", + "name": "1-3/4\"" + }, + { + "id": "_2_", + "name": "2\"" + }, + { + "id": "_2_25_", + "name": "2-1/4\"" + }, + { + "id": "_2_5_", + "name": "2-1/2\"" + }, + { + "id": "_3_", + "name": "3\"" + }, + { + "id": "Dummy", + "name": "Dummy" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_3_16_", + "_1_4_", + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_9_16_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_125_", + "_1_25_", + "_1_375_", + "_1_5_", + "_1_625_", + "_1_75_", + "_2_", + "_2_25_", + "_2_5_", + "_3_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_1_4_", + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_25_", + "_1_5_", + "_2_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_cpyTEA78YNEBYP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Flat" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8_", + "options": [ + { + "id": "Default", + "name": "3/16\"" + }, + { + "id": "_1_4_", + "name": "1/4\"" + }, + { + "id": "_5_16_", + "name": "5/16\"" + }, + { + "id": "_3_8_", + "name": "3/8\"" + }, + { + "id": "_7_16_", + "name": "7/16\"" + }, + { + "id": "_1_2_", + "name": "1/2\"" + }, + { + "id": "_9_16_", + "name": "9/16\"" + }, + { + "id": "_5_8_", + "name": "5/8\"" + }, + { + "id": "_3_4_", + "name": "3/4\"" + }, + { + "id": "_7_8_", + "name": "7/8\"" + }, + { + "id": "_1_", + "name": "1\"" + }, + { + "id": "_1_125_", + "name": "1-1/8\"" + }, + { + "id": "_1_25_", + "name": "1-1/4\"" + }, + { + "id": "_1_375_", + "name": "1-3/8\"" + }, + { + "id": "_1_5_", + "name": "1-1/2\"" + }, + { + "id": "_1_625_", + "name": "1-5/8\"" + }, + { + "id": "_1_75_", + "name": "1-3/4\"" + }, + { + "id": "_2_", + "name": "2\"" + }, + { + "id": "_2_25_", + "name": "2-1/4\"" + }, + { + "id": "_2_5_", + "name": "2-1/2\"" + }, + { + "id": "_3_", + "name": "3\"" + }, + { + "id": "_3_5_", + "name": "3-1/2\"" + }, + { + "id": "_4_", + "name": "4\"" + }, + { + "id": "Dummy", + "name": "Dummy" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_1_4_", + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_9_16_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_125_", + "_1_25_", + "_1_375_", + "_1_5_", + "_1_625_", + "_1_75_", + "_2_", + "_2_25_", + "_2_5_", + "_3_", + "_3_5_", + "_4_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_1_4_", + "_5_16_", + "_3_8_", + "_1_2_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_25_", + "_1_5_", + "_2_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + } + ], + "records": [ + { + "partNumber": "91255A263", + "name": "#10-32 x 3/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A263/", + "configurationKey": "" + }, + { + "partNumber": "91251A518", + "name": "#10-32 x 5/32\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A518/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=Default" + }, + { + "partNumber": "91251A901", + "name": "#10-32 x 3/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A901/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_16" + }, + { + "partNumber": "91251A338", + "name": "#10-32 x 1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A338/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_4" + }, + { + "partNumber": "91251A337", + "name": "#10-32 x 5/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A337/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_16" + }, + { + "partNumber": "91251A340", + "name": "#10-32 x 3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A340/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket" + }, + { + "partNumber": "91251A350", + "name": "#10-32 x 7/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A350/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_7_16" + }, + { + "partNumber": "91251A342", + "name": "#10-32 x 1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A342/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_2" + }, + { + "partNumber": "91251A356", + "name": "#10-32 x 9/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A356/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_9_16" + }, + { + "partNumber": "91251A344", + "name": "#10-32 x 5/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A344/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_8" + }, + { + "partNumber": "90044A201", + "name": "#10-32 x 11/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A201/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_11_16" + }, + { + "partNumber": "91251A345", + "name": "#10-32 x 3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A345/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_4" + }, + { + "partNumber": "91251A346", + "name": "#10-32 x 7/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A346/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_7_8" + }, + { + "partNumber": "91251A347", + "name": "#10-32 x 1\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A347/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1" + }, + { + "partNumber": "91251A348", + "name": "#10-32 x 1-1/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A348/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_80" + }, + { + "partNumber": "91251A349", + "name": "#10-32 x 1-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A349/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_4" + }, + { + "partNumber": "90044A202", + "name": "#10-32 x 1-3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A202/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_8" + }, + { + "partNumber": "90044A118", + "name": "#10-32 x 1-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A118/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_2" + }, + { + "partNumber": "91251A351", + "name": "#10-32 x 1-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A351/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_20" + }, + { + "partNumber": "91251A287", + "name": "#10-32 x 1-5/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A287/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_5_8" + }, + { + "partNumber": "90044A119", + "name": "#10-32 x 1-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A119/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_4" + }, + { + "partNumber": "91251A352", + "name": "#10-32 x 1-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A352/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_40" + }, + { + "partNumber": "91251A288", + "name": "#10-32 x 1-7/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A288/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_7_8" + }, + { + "partNumber": "90044A120", + "name": "#10-32 x 2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A120/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2" + }, + { + "partNumber": "91251A353", + "name": "#10-32 x 2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A353/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_20" + }, + { + "partNumber": "90044A523", + "name": "#10-32 x 2-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A523/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_4" + }, + { + "partNumber": "91251A354", + "name": "#10-32 x 2-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A354/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_40" + }, + { + "partNumber": "90044A121", + "name": "#10-32 x 2-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A121/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_2" + }, + { + "partNumber": "91251A355", + "name": "#10-32 x 2-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A355/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_20" + }, + { + "partNumber": "90044A524", + "name": "#10-32 x 2-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A524/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_3_4" + }, + { + "partNumber": "91251A359", + "name": "#10-32 x 2-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A359/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_3_40" + }, + { + "partNumber": "90044A122", + "name": "#10-32 x 3\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A122/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3" + }, + { + "partNumber": "91251A360", + "name": "#10-32 x 3\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A360/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_30" + }, + { + "partNumber": "90044A525", + "name": "#10-32 x 3-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A525/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_1_2" + }, + { + "partNumber": "91251A361", + "name": "#10-32 x 3-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A361/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_1_20" + }, + { + "partNumber": "91251A289", + "name": "#10-32 x 3-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A289/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_3_4" + }, + { + "partNumber": "91251A364", + "name": "#10-32 x 4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A364/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_4" + }, + { + "partNumber": "91251A357", + "name": "#10-32 x 4-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A357/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_4_1_2" + }, + { + "partNumber": "91251A358", + "name": "#10-32 x 5\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A358/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5" + }, + { + "partNumber": "91251A906", + "name": "#10-32 x 5-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A906/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_1_2" + }, + { + "partNumber": "91251A907", + "name": "#10-32 x 6\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A907/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_6" + }, + { + "partNumber": "90044A262", + "name": "#10-32 x 6-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A262/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_6_1_2" + }, + { + "partNumber": "90044A263", + "name": "#10-32 x 7\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A263/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_7" + }, + { + "partNumber": "90128A129", + "name": "#10-32 x 3/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A129/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3_16" + }, + { + "partNumber": "90128A932", + "name": "#10-32 x 1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A932/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_4" + }, + { + "partNumber": "90128A131", + "name": "#10-32 x 5/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A131/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_5_16" + }, + { + "partNumber": "90128A940", + "name": "#10-32 x 3/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A940/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "90128A315", + "name": "#10-32 x 7/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A315/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_7_16" + }, + { + "partNumber": "90128A942", + "name": "#10-32 x 1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A942/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_2" + }, + { + "partNumber": "90128A316", + "name": "#10-32 x 9/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A316/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_9_16" + }, + { + "partNumber": "90128A944", + "name": "#10-32 x 5/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A944/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_5_8" + }, + { + "partNumber": "90128A945", + "name": "#10-32 x 3/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A945/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3_4" + }, + { + "partNumber": "90128A946", + "name": "#10-32 x 7/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A946/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_7_8" + }, + { + "partNumber": "90128A947", + "name": "#10-32 x 1\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A947/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1" + }, + { + "partNumber": "90128A948", + "name": "#10-32 x 1-1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A948/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_4" + }, + { + "partNumber": "90128A132", + "name": "#10-32 x 1-3/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A132/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_3_8" + }, + { + "partNumber": "90128A951", + "name": "#10-32 x 1-1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A951/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_20" + }, + { + "partNumber": "90128A953", + "name": "#10-32 x 1-3/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A953/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_3_40" + }, + { + "partNumber": "90128A955", + "name": "#10-32 x 2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A955/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_20" + }, + { + "partNumber": "90128A957", + "name": "#10-32 x 2-1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A957/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_2_1_40" + }, + { + "partNumber": "90128A961", + "name": "#10-32 x 2-1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A961/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_2_1_20" + }, + { + "partNumber": "90128A965", + "name": "#10-32 x 2-3/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A965/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_2_3_40" + }, + { + "partNumber": "90128A969", + "name": "#10-32 x 3\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A969/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_30" + }, + { + "partNumber": "90128A973", + "name": "#10-32 x 3-1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A973/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3_1_20" + }, + { + "partNumber": "90128A977", + "name": "#10-32 x 4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A977/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_4" + }, + { + "partNumber": "91255A024", + "name": "#10-32 x 1/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A024/", + "configurationKey": "List_ztF5Nwo3ZVISRf=Default" + }, + { + "partNumber": "91255A025", + "name": "#10-32 x 3/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A025/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_16_" + }, + { + "partNumber": "91255A261", + "name": "#10-32 x 1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A261/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "91255A262", + "name": "#10-32 x 5/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A262/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_5_16_" + }, + { + "partNumber": "91255A026", + "name": "#10-32 x 7/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A026/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_7_16_" + }, + { + "partNumber": "91255A265", + "name": "#10-32 x 1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A265/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_2_" + }, + { + "partNumber": "91255A027", + "name": "#10-32 x 9/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A027/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_9_16_" + }, + { + "partNumber": "91255A267", + "name": "#10-32 x 5/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A267/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_5_8_" + }, + { + "partNumber": "91255A269", + "name": "#10-32 x 3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A269/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_4_" + }, + { + "partNumber": "91255A271", + "name": "#10-32 x 7/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A271/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_7_8_" + }, + { + "partNumber": "91255A273", + "name": "#10-32 x 1\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A273/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_" + }, + { + "partNumber": "91255A028", + "name": "#10-32 x 1-1/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A028/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_125_" + }, + { + "partNumber": "91255A274", + "name": "#10-32 x 1-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A274/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_25_" + }, + { + "partNumber": "91255A272", + "name": "#10-32 x 1-3/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A272/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_375_" + }, + { + "partNumber": "91255A275", + "name": "#10-32 x 1-1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A275/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_5_" + }, + { + "partNumber": "91255A277", + "name": "#10-32 x 1-5/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A277/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_625_" + }, + { + "partNumber": "91255A276", + "name": "#10-32 x 1-3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A276/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_75_" + }, + { + "partNumber": "91255A278", + "name": "#10-32 x 2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A278/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_" + }, + { + "partNumber": "91255A815", + "name": "#10-32 x 2-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A815/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_25_" + }, + { + "partNumber": "91255A029", + "name": "#10-32 x 2-1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A029/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_5_" + }, + { + "partNumber": "91255A030", + "name": "#10-32 x 3\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A030/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_" + }, + { + "partNumber": "91306A352", + "name": "#10-32 x 1/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A352/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "91306A272", + "name": "#10-32 x 5/16\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A272/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_5_16_" + }, + { + "partNumber": "91306A354", + "name": "#10-32 x 3/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A354/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "91306A273", + "name": "#10-32 x 7/16\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A273/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_7_16_" + }, + { + "partNumber": "91306A356", + "name": "#10-32 x 1/2\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A356/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_2_" + }, + { + "partNumber": "91306A274", + "name": "#10-32 x 5/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A274/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_5_8_" + }, + { + "partNumber": "91306A358", + "name": "#10-32 x 3/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A358/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_3_4_" + }, + { + "partNumber": "91306A275", + "name": "#10-32 x 7/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A275/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_7_8_" + }, + { + "partNumber": "91306A276", + "name": "#10-32 x 1\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A276/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_" + }, + { + "partNumber": "91306A714", + "name": "#10-32 x 1-1/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A714/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_25_" + }, + { + "partNumber": "91306A277", + "name": "#10-32 x 1-1/2\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A277/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_5_" + }, + { + "partNumber": "91306A715", + "name": "#10-32 x 2\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A715/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_2_" + }, + { + "partNumber": "null", + "name": "#10-32 x 3/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=Default" + }, + { + "partNumber": "91263A540", + "name": "#10-32 x 1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A540/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_4_" + }, + { + "partNumber": "91263A157", + "name": "#10-32 x 5/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A157/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_5_16_" + }, + { + "partNumber": "91263A542", + "name": "#10-32 x 3/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A542/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat" + }, + { + "partNumber": "null", + "name": "#10-32 x 7/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_7_16_" + }, + { + "partNumber": "91263A544", + "name": "#10-32 x 1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A544/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_2_" + }, + { + "partNumber": "null", + "name": "#10-32 x 9/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_9_16_" + }, + { + "partNumber": "91263A543", + "name": "#10-32 x 5/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A543/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_5_8_" + }, + { + "partNumber": "91263A546", + "name": "#10-32 x 3/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A546/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_3_4_" + }, + { + "partNumber": "91263A547", + "name": "#10-32 x 7/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A547/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_7_8_" + }, + { + "partNumber": "91263A548", + "name": "#10-32 x 1\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A548/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_" + }, + { + "partNumber": "null", + "name": "#10-32 x 1-1/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_125_" + }, + { + "partNumber": "91263A160", + "name": "#10-32 x 1-1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A160/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_25_" + }, + { + "partNumber": "null", + "name": "#10-32 x 1-3/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_375_" + }, + { + "partNumber": "91263A550", + "name": "#10-32 x 1-1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A550/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_5_" + }, + { + "partNumber": "null", + "name": "#10-32 x 1-5/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_625_" + }, + { + "partNumber": "null", + "name": "#10-32 x 1-3/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_75_" + }, + { + "partNumber": "null", + "name": "#10-32 x 2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_2_" + }, + { + "partNumber": "null", + "name": "#10-32 x 2-1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_2_25_" + }, + { + "partNumber": "91263A163", + "name": "#10-32 x 2-1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A163/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_2_5_" + }, + { + "partNumber": "null", + "name": "#10-32 x 3\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_3_" + }, + { + "partNumber": "null", + "name": "#10-32 x 3-1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_3_5_" + }, + { + "partNumber": "null", + "name": "#10-32 x 4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_4_" + }, + { + "partNumber": "91263A540", + "name": "#10-32 x 1/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A540/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_4_" + }, + { + "partNumber": "91263A157", + "name": "#10-32 x 5/16\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A157/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_5_16_" + }, + { + "partNumber": "91263A542", + "name": "#10-32 x 3/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A542/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "91263A544", + "name": "#10-32 x 1/2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A544/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_2_" + }, + { + "partNumber": "91263A543", + "name": "#10-32 x 5/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A543/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_5_8_" + }, + { + "partNumber": "91263A546", + "name": "#10-32 x 3/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A546/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_3_4_" + }, + { + "partNumber": "91263A547", + "name": "#10-32 x 7/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A547/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_7_8_" + }, + { + "partNumber": "91263A548", + "name": "#10-32 x 1\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A548/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_" + }, + { + "partNumber": "91263A160", + "name": "#10-32 x 1-1/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A160/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_25_" + }, + { + "partNumber": "91263A550", + "name": "#10-32 x 1-1/2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A550/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_5_" + }, + { + "partNumber": "null", + "name": "#10-32 x 2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_2_" + } + ] + }, + { + "insertableId": "9a0e4c61-6998-4f05-939c-aa5b58c1ae4c", + "name": "#10-32 Bolt (REV)", + "vendors": [ + "REV" + ], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "71c91894a325ce31a65e4c49", + "parameters": [ + { + "id": "List_TmRH7NJBvedWLl", + "name": "Head Type", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Socket", + "name": "Socket" + }, + { + "id": "Default", + "name": "Button" + }, + { + "id": "Flat", + "name": "Flat (Countersink)" + } + ], + "optionConditions": [] + }, + { + "id": "List_5GpG8SQ4jcTSSF", + "name": "Finish", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "Black Oxide" + }, + { + "id": "Zinc_Plates", + "name": "Zinc Plated" + }, + { + "id": "Dummy", + "name": "Dummy" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Socket" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "Zinc_Plates" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Flat" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "Default", + "Zinc_Plates" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Default" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_rtxRa7CTeUKBGP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Socket" + } + ] + }, + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8", + "options": [ + { + "id": "_1_4", + "name": "1/4\"" + }, + { + "id": "_5_16", + "name": "5/16\"" + }, + { + "id": "_3_8", + "name": "3/8\"" + }, + { + "id": "_1_2", + "name": "1/2\"" + }, + { + "id": "_5_8", + "name": "5/8\"" + }, + { + "id": "_3_4", + "name": "3/4\"" + }, + { + "id": "_1", + "name": "1\"" + }, + { + "id": "_1_1_4", + "name": "1-1/4\"" + }, + { + "id": "_1_1_2", + "name": "1-1/2\"" + }, + { + "id": "_1_3_4", + "name": "1-3/4\"" + }, + { + "id": "_2", + "name": "2\"" + }, + { + "id": "_2_1_4", + "name": "2-1/4\"" + }, + { + "id": "_2_1_2", + "name": "2-1/2\"" + }, + { + "id": "_2_3_4", + "name": "2-3/4\"" + }, + { + "id": "_3", + "name": "3\"" + }, + { + "id": "_3_1_2", + "name": "3-1/2\"" + }, + { + "id": "_4", + "name": "4\"" + }, + { + "id": "Dummy", + "name": "Dummy" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "_1_4", + "_5_16", + "_3_8", + "_1_2", + "_5_8", + "_3_4", + "_1", + "_1_1_4", + "_1_1_2", + "_1_3_4", + "_2", + "_2_1_4", + "_2_1_2", + "_2_3_4", + "_3", + "_3_1_2", + "_4" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "Dummy" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_ztF5Nwo3ZVISRf", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Default" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8_", + "options": [ + { + "id": "_1_4_", + "name": "1/4\"" + }, + { + "id": "_5_16_", + "name": "5/16\"" + }, + { + "id": "_3_8_", + "name": "3/8\"" + }, + { + "id": "_1_2_", + "name": "1/2\"" + }, + { + "id": "_5_8_", + "name": "5/8\"" + }, + { + "id": "_3_4_", + "name": "3/4\"" + }, + { + "id": "_1_", + "name": "1\"" + }, + { + "id": "_1_25_", + "name": "1-1/4\"" + }, + { + "id": "_1_5_", + "name": "1-1/2\"" + }, + { + "id": "_1_625_", + "name": "1-5/8\"" + }, + { + "id": "_1_75_", + "name": "1-3/4\"" + }, + { + "id": "_2_", + "name": "2\"" + }, + { + "id": "_2_25_", + "name": "2-1/4\"" + }, + { + "id": "_2_5_", + "name": "2-1/2\"" + }, + { + "id": "Copy_of_2_5_", + "name": "2-3/4\"" + }, + { + "id": "_3_", + "name": "3\"" + }, + { + "id": "Dummy", + "name": "Dummy" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "_1_4_", + "_5_16_", + "_3_8_", + "_1_2_", + "_5_8_", + "_3_4_", + "_1_", + "_1_25_", + "_1_5_", + "_1_625_", + "_1_75_", + "_2_", + "_2_25_", + "_2_5_", + "Copy_of_2_5_", + "_3_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_3_8_", + "_1_2_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_cpyTEA78YNEBYP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Flat" + } + ] + } + ] + }, + "type": "enum", + "default": "_1_2_", + "options": [ + { + "id": "_1_2_", + "name": "1/2\"" + }, + { + "id": "Dummy", + "name": "Dummy" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "_1_2_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_1_2_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + } + ], + "records": [ + { + "partNumber": "REV-29-2941-PK50", + "name": "#10-32 x 3/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2941-PK50§ion=product", + "configurationKey": "" + }, + { + "partNumber": "REV-29-2910-PK50", + "name": "#10-32 x 1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2910-PK50§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_4" + }, + { + "partNumber": "REV-29-2911-PK50", + "name": "#10-32 x 5/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2911-PK50§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_16" + }, + { + "partNumber": "REV-29-2912-PK50", + "name": "#10-32 x 3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2912-PK50§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket" + }, + { + "partNumber": "REV-29-2914-PK50", + "name": "#10-32 x 1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2914-PK50§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_2" + }, + { + "partNumber": "REV-29-2916-PK50", + "name": "#10-32 x 5/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2916-PK50§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_8" + }, + { + "partNumber": "REV-29-2918-PK50", + "name": "#10-32 x 3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2918-PK50§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_4" + }, + { + "partNumber": "REV-29-2922-PK50", + "name": "#10-32 x 1\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2922-PK50§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1" + }, + { + "partNumber": "REV-29-2924-PK50", + "name": "#10-32 x 1-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2924-PK50§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_4" + }, + { + "partNumber": "REV-29-2926-PK50", + "name": "#10-32 x 1-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2926-PK50§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_2" + }, + { + "partNumber": "REV-29-2928-PK25", + "name": "#10-32 x 1-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2928-PK25§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_4" + }, + { + "partNumber": "REV-29-2930-PK25", + "name": "#10-32 x 2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2930-PK25§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2" + }, + { + "partNumber": "REV-29-2931-PK25", + "name": "#10-32 x 2-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2931-PK25§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_4" + }, + { + "partNumber": "REV-29-2932-PK25", + "name": "#10-32 x 2-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2932-PK25§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_2" + }, + { + "partNumber": "REV-29-2933-PK25", + "name": "#10-32 x 2-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2933-PK25§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_3_4" + }, + { + "partNumber": "REV-29-2934-PK25", + "name": "#10-32 x 3\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2934-PK25§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3" + }, + { + "partNumber": "REV-29-2936-PK25", + "name": "#10-32 x 3-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2936-PK25§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_1_2" + }, + { + "partNumber": "REV-29-2938-PK25", + "name": "#10-32 x 4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2938-PK25§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_4" + }, + { + "partNumber": "REV-29-2939-PK50", + "name": "#10-32 x 1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2939-PK50§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "REV-29-2940-PK50", + "name": "#10-32 x 5/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2940-PK50§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_5_16_" + }, + { + "partNumber": "REV-29-2943-PK50", + "name": "#10-32 x 1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2943-PK50§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_2_" + }, + { + "partNumber": "REV-29-2945-PK50", + "name": "#10-32 x 5/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2945-PK50§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_5_8_" + }, + { + "partNumber": "REV-29-2947-PK50", + "name": "#10-32 x 3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2947-PK50§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_4_" + }, + { + "partNumber": "REV-29-2951-PK50", + "name": "#10-32 x 1\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2951-PK50§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_" + }, + { + "partNumber": "REV-29-2953-PK50", + "name": "#10-32 x 1-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2953-PK50§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_25_" + }, + { + "partNumber": "REV-29-2955-PK50", + "name": "#10-32 x 1-1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2955-PK50§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_5_" + }, + { + "partNumber": "REV-29-2956-PK25", + "name": "#10-32 x 1-5/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2956-PK25§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_625_" + }, + { + "partNumber": "REV-29-2957-PK25", + "name": "#10-32 x 1-3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2957-PK25§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_75_" + }, + { + "partNumber": "REV-29-2959-PK25", + "name": "#10-32 x 2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2959-PK25§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_" + }, + { + "partNumber": "REV-29-2960-PK25", + "name": "#10-32 x 2-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2960-PK25§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_25_" + }, + { + "partNumber": "REV-29-2961-PK25", + "name": "#10-32 x 2-1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2961-PK25§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_5_" + }, + { + "partNumber": "REV-29-2962-PK25", + "name": "#10-32 x 2-3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2962-PK25§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=Copy_of_2_5_" + }, + { + "partNumber": "REV-29-2963-PK25", + "name": "#10-32 x 3\" L BHCS (Steel, Black Oxide)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-2963-PK25§ion=product", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_" + }, + { + "partNumber": "REV-29-1221-PK100", + "name": "#10-32 x 3/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-1221-PK100§ion=product", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "REV-29-1222-PK100", + "name": "#10-32 x 1/2\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-1222-PK100§ion=product", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_2_" + }, + { + "partNumber": "REV-29-1223-PK25", + "name": "#10-32 x 1/2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.revrobotics.com/search.php?search_query=REV-29-1223-PK25§ion=product", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates" + } + ] + }, + { + "insertableId": "a808aede-2c9d-4ec2-94af-5a57de7d8531", + "name": "#10-32 Bolt (WCP)", + "vendors": [ + "WCP" + ], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "bc4827d8008def3cccff3e06", + "parameters": [ + { + "id": "List_TmRH7NJBvedWLl", + "name": "Head Type", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Socket", + "name": "Socket" + }, + { + "id": "Default", + "name": "Button" + } + ], + "optionConditions": [] + }, + { + "id": "List_5GpG8SQ4jcTSSF", + "name": "Material", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "Black Oxide Steel" + }, + { + "id": "Aluminum", + "name": "Aluminum" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Socket" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "Default", + "Aluminum" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Default" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_rtxRa7CTeUKBGP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Socket" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8", + "options": [ + { + "id": "_1_4", + "name": "1/4\"" + }, + { + "id": "_3_8", + "name": "3/8\"" + }, + { + "id": "_1_2", + "name": "1/2\"" + }, + { + "id": "_1", + "name": "1\"" + }, + { + "id": "_1_1_2", + "name": "1-1/2\"" + }, + { + "id": "_1_3_4", + "name": "1-3/4\"" + }, + { + "id": "_2", + "name": "2\"" + }, + { + "id": "_2_1_2", + "name": "2-1/2\"" + }, + { + "id": "_3", + "name": "3\"" + }, + { + "id": "_3_1_20", + "name": "3-1/2\"" + }, + { + "id": "_4", + "name": "4\"" + }, + { + "id": "_4_1_2", + "name": "4-1/2\"" + }, + { + "id": "_5", + "name": "5\"" + } + ], + "optionConditions": [] + }, + { + "id": "List_ztF5Nwo3ZVISRf", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Default" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8_", + "options": [ + { + "id": "_1_4_", + "name": "1/4\"" + }, + { + "id": "_3_8_", + "name": "3/8\"" + }, + { + "id": "_1_2_", + "name": "1/2\"" + }, + { + "id": "_3_4_", + "name": "3/4\"" + }, + { + "id": "_7_8_", + "name": "7/8\"" + }, + { + "id": "_1_", + "name": "1\"" + }, + { + "id": "_1_25_", + "name": "1-1/4\"" + }, + { + "id": "_1_5_", + "name": "1-1/2\"" + }, + { + "id": "_1_75_", + "name": "1-3/4\"" + }, + { + "id": "_2_", + "name": "2\"" + }, + { + "id": "_2_25_", + "name": "2-1/4\"" + }, + { + "id": "_2_5_", + "name": "2-1/2\"" + }, + { + "id": "_2_75_", + "name": "2-3/4\"" + }, + { + "id": "_3_", + "name": "3\"" + }, + { + "id": "_4_3_4_", + "name": "4-3/4\"" + } + ], + "optionConditions": [ + { + "type": "range", + "start": "_1_4_", + "end": "_1_2_", + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Aluminum" + } + ] + } + ] + } + }, + { + "type": "range", + "start": "_1_4_", + "end": "_4_3_4_", + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + } + ] + } + ], + "records": [ + { + "partNumber": "WCP-0252", + "name": "#10-32 x 3/8\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0252", + "configurationKey": "" + }, + { + "partNumber": "WCP-0264", + "name": "#10-32 x 1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0264", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_4" + }, + { + "partNumber": "WCP-0265", + "name": "#10-32 x 3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0265", + "configurationKey": "List_TmRH7NJBvedWLl=Socket" + }, + { + "partNumber": "WCP-0266", + "name": "#10-32 x 1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0266", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_2" + }, + { + "partNumber": "WCP-0267", + "name": "#10-32 x 1\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0267", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1" + }, + { + "partNumber": "WCP-0268", + "name": "#10-32 x 1-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0268", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_2" + }, + { + "partNumber": "WCP-1549", + "name": "#10-32 x 1-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-1549", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_4" + }, + { + "partNumber": "WCP-0269", + "name": "#10-32 x 2\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0269", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2" + }, + { + "partNumber": "WCP-0270", + "name": "#10-32 x 2-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0270", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_2" + }, + { + "partNumber": "WCP-0271", + "name": "#10-32 x 3\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0271", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3" + }, + { + "partNumber": "WCP-0272", + "name": "#10-32 x 3-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0272", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_1_20" + }, + { + "partNumber": "WCP-0273", + "name": "#10-32 x 4\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0273", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_4" + }, + { + "partNumber": "WCP-0274", + "name": "#10-32 x 4-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0274", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_4_1_2" + }, + { + "partNumber": "WCP-0275", + "name": "#10-32 x 5\" L SHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0275", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5" + }, + { + "partNumber": "WCP-0251", + "name": "#10-32 x 1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0251", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "WCP-0253", + "name": "#10-32 x 1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0253", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_2_" + }, + { + "partNumber": "WCP-0254", + "name": "#10-32 x 3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0254", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_4_" + }, + { + "partNumber": "WCP-1463", + "name": "#10-32 x 7/8\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-1463", + "configurationKey": "List_ztF5Nwo3ZVISRf=_7_8_" + }, + { + "partNumber": "WCP-0255", + "name": "#10-32 x 1\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0255", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_" + }, + { + "partNumber": "WCP-0256", + "name": "#10-32 x 1-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0256", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_25_" + }, + { + "partNumber": "WCP-0257", + "name": "#10-32 x 1-1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0257", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_5_" + }, + { + "partNumber": "WCP-0258", + "name": "#10-32 x 1-3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0258", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_75_" + }, + { + "partNumber": "WCP-0259", + "name": "#10-32 x 2\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0259", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_" + }, + { + "partNumber": "WCP-0260", + "name": "#10-32 x 2-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0260", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_25_" + }, + { + "partNumber": "WCP-0261", + "name": "#10-32 x 2-1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0261", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_5_" + }, + { + "partNumber": "WCP-0262", + "name": "#10-32 x 2-3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0262", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_75_" + }, + { + "partNumber": "WCP-0263", + "name": "#10-32 x 3\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-0263", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_" + }, + { + "partNumber": "WCP-1656", + "name": "#10-32 x 4-3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://wcproducts.com/products/wcp-1656", + "configurationKey": "List_ztF5Nwo3ZVISRf=_4_3_4_" + }, + { + "partNumber": "WCP-2110", + "name": "#10-32 x 1/4\" L BHCS (Aluminum, Anodized)", + "url": "https://wcproducts.com/products/wcp-2110", + "configurationKey": "List_5GpG8SQ4jcTSSF=Aluminum;List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "WCP-2111", + "name": "#10-32 x 3/8\" L BHCS (Aluminum, Anodized)", + "url": "https://wcproducts.com/products/wcp-2111", + "configurationKey": "List_5GpG8SQ4jcTSSF=Aluminum" + }, + { + "partNumber": "WCP-2112", + "name": "#10-32 x 1/2\" L BHCS (Aluminum, Anodized)", + "url": "https://wcproducts.com/products/wcp-2112", + "configurationKey": "List_5GpG8SQ4jcTSSF=Aluminum;List_ztF5Nwo3ZVISRf=_1_2_" + } + ] + }, + { + "insertableId": "064a42ff-e689-48e1-9bc7-4dcab414d035", + "name": "#10-32 Nut", + "vendors": [], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "6b0101e942844c2027bd0c9b", + "parameters": [ + { + "id": "List_W8AN11pwjxxWqR", + "name": "Type", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "Nylock" + }, + { + "id": "Thin_Nylock", + "name": "Thin Nylock" + }, + { + "id": "Hex_Nut", + "name": "Hex" + }, + { + "id": "Square_Nut", + "name": "Square" + } + ], + "optionConditions": [] + } + ], + "records": [ + { + "partNumber": "90631A411", + "name": "#10-32 Nylon-Insert Locknut", + "url": "https://www.mcmaster.com/90631A411/", + "configurationKey": "" + }, + { + "partNumber": "90633A411", + "name": "#10-32 Thin Nylon-Insert Locknut", + "url": "https://www.mcmaster.com/90633A411/", + "configurationKey": "List_W8AN11pwjxxWqR=Thin_Nylock" + }, + { + "partNumber": "90480A195", + "name": "#10-32 Hex Nut", + "url": "https://www.mcmaster.com/90480A195/", + "configurationKey": "List_W8AN11pwjxxWqR=Hex_Nut" + }, + { + "partNumber": "94855A283", + "name": "#10-32 Square Nut", + "url": "https://www.mcmaster.com/94855A283/", + "configurationKey": "List_W8AN11pwjxxWqR=Square_Nut" + } + ] + }, + { + "insertableId": "21d6d04e-a4a2-4d2e-8d97-e952e577171c", + "name": "#4-40 Bolt (MCM)", + "vendors": [ + "MCM" + ], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "20708bcfb5906fea8e00589e", + "parameters": [ + { + "id": "List_TmRH7NJBvedWLl", + "name": "Head Type", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Socket", + "name": "Socket" + }, + { + "id": "Default", + "name": "Button" + }, + { + "id": "Flat", + "name": "Flat (Counterskink)" + } + ], + "optionConditions": [] + }, + { + "id": "List_5GpG8SQ4jcTSSF", + "name": "Finish", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "Black Oxide" + }, + { + "id": "Zinc_Plates", + "name": "Zinc Plated" + } + ], + "optionConditions": [] + }, + { + "id": "List_rtxRa7CTeUKBGP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Socket" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8", + "options": [ + { + "id": "Default", + "name": "3/32\"" + }, + { + "id": "_3_16", + "name": "1/8\"" + }, + { + "id": "_1_4", + "name": "5/32\"" + }, + { + "id": "_5_16", + "name": "3/16\"" + }, + { + "id": "_3_8", + "name": "1/4\"" + }, + { + "id": "_7_16", + "name": "5/16\"" + }, + { + "id": "_1_2", + "name": "3/8\"" + }, + { + "id": "_9_16", + "name": "7/16\"" + }, + { + "id": "_5_8", + "name": "1/2\"" + }, + { + "id": "_11_16", + "name": "9/16\"" + }, + { + "id": "_3_4", + "name": "5/8\"" + }, + { + "id": "_7_8", + "name": "3/4\"" + }, + { + "id": "_1", + "name": "7/8\"" + }, + { + "id": "_1_1_80", + "name": "1\" Full Thread" + }, + { + "id": "_1_1_4", + "name": "1\" Partial Thread" + }, + { + "id": "_1_3_8", + "name": "1-1/8\"" + }, + { + "id": "_1_1_2", + "name": "1-1/4\"" + }, + { + "id": "_1_1_20", + "name": "1-3/8\"" + }, + { + "id": "_1_5_8", + "name": "1-1/2\"" + }, + { + "id": "_1_3_4", + "name": "1-5/8\"" + }, + { + "id": "_1_3_40", + "name": "1-3/4\"" + }, + { + "id": "_1_7_8", + "name": "2\"" + }, + { + "id": "_2", + "name": "2-1/4\"" + }, + { + "id": "_20", + "name": "2-1/2\"" + }, + { + "id": "_2_1_4", + "name": "2-3/4\"" + }, + { + "id": "_2_1_40", + "name": "3\"" + }, + { + "id": "_2_1_2", + "name": "3-1/2\"" + }, + { + "id": "_4_", + "name": "4\"" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_3_16", + "_1_4", + "_5_16", + "_3_8", + "_7_16", + "_1_2", + "_9_16", + "_5_8", + "_11_16", + "_3_4", + "_7_8", + "_1", + "_1_1_80", + "_1_1_4", + "_1_3_8", + "_1_1_2", + "_1_1_20", + "_1_5_8", + "_1_3_4", + "_1_3_40", + "_1_7_8", + "_2", + "_20", + "_2_1_4", + "_2_1_40", + "_2_1_2", + "_4_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_3_16", + "_5_16", + "_3_8", + "_7_16", + "_1_2", + "_9_16", + "_5_8", + "_3_4", + "_7_8", + "_1", + "_1_1_4", + "_1_1_2", + "_1_5_8", + "_1_7_8" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_ztF5Nwo3ZVISRf", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Default" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8_", + "options": [ + { + "id": "Default", + "name": "1/8\"" + }, + { + "id": "_3_16_", + "name": "3/16\"" + }, + { + "id": "_1_4_", + "name": "1/4\"" + }, + { + "id": "_5_16_", + "name": "5/16\"" + }, + { + "id": "_3_8_", + "name": "3/8\"" + }, + { + "id": "_7_16_", + "name": "7/16\"" + }, + { + "id": "_1_2_", + "name": "1/2\"" + }, + { + "id": "_9_16_", + "name": "9/16\"" + }, + { + "id": "_5_8_", + "name": "5/8\"" + }, + { + "id": "_3_4_", + "name": "3/4\"" + }, + { + "id": "_7_8_", + "name": "7/8\"" + }, + { + "id": "_1_", + "name": "1\"" + }, + { + "id": "_1_125_", + "name": "1-1/4\"" + }, + { + "id": "_1_25_", + "name": "1-1/2\"" + }, + { + "id": "_1_375_", + "name": "2\"" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_3_16_", + "_1_4_", + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_9_16_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_125_", + "_1_25_", + "_1_375_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "Default", + "_3_16_", + "_1_4_", + "_3_8_", + "_7_16_", + "_1_2_", + "_5_8_", + "_3_4_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_cpyTEA78YNEBYP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Flat" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8_", + "options": [ + { + "id": "Default", + "name": "1/8\"" + }, + { + "id": "_1_4_", + "name": "5/32\"" + }, + { + "id": "_5_16_", + "name": "3/16\"" + }, + { + "id": "_3_8_", + "name": "1/4\"" + }, + { + "id": "_7_16_", + "name": "5/16\"" + }, + { + "id": "_1_2_", + "name": "3/8\"" + }, + { + "id": "_9_16_", + "name": "7/16\"" + }, + { + "id": "_5_8_", + "name": "1/2\"" + }, + { + "id": "_3_4_", + "name": "9/16\"" + }, + { + "id": "_7_8_", + "name": "5/8\"" + }, + { + "id": "_1_", + "name": "3/4\"" + }, + { + "id": "_1_125_", + "name": "7/8\"" + }, + { + "id": "_1_25_", + "name": "1\"" + }, + { + "id": "_1_375_", + "name": "1-1/8\"" + }, + { + "id": "_1_5_", + "name": "1-1/4\"" + }, + { + "id": "_1_625_", + "name": "1-1/2\"" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_1_4_", + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_9_16_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_125_", + "_1_25_", + "_1_375_", + "_1_5_", + "_1_625_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_5_8_", + "_7_8_", + "_1_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + } + ], + "records": [ + { + "partNumber": "91255A108", + "name": "#4-40 x 3/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A108/", + "configurationKey": "" + }, + { + "partNumber": "91251A231", + "name": "#4-40 x 3/32\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A231/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=Default" + }, + { + "partNumber": "91864A018", + "name": "#4-40 x 1/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A018/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_16" + }, + { + "partNumber": "91251A232", + "name": "#4-40 x 5/32\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A232/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_4" + }, + { + "partNumber": "91251A105", + "name": "#4-40 x 3/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A105/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_16" + }, + { + "partNumber": "91251A106", + "name": "#4-40 x 1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A106/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket" + }, + { + "partNumber": "91251A107", + "name": "#4-40 x 5/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A107/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_7_16" + }, + { + "partNumber": "91251A108", + "name": "#4-40 x 3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A108/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_2" + }, + { + "partNumber": "91864A081", + "name": "#4-40 x 7/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A081/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_9_16" + }, + { + "partNumber": "91251A110", + "name": "#4-40 x 1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A110/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_8" + }, + { + "partNumber": "91864A028", + "name": "#4-40 x 9/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A028/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_11_16" + }, + { + "partNumber": "91251A112", + "name": "#4-40 x 5/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A112/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_4" + }, + { + "partNumber": "91251A113", + "name": "#4-40 x 3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A113/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_7_8" + }, + { + "partNumber": "91251A114", + "name": "#4-40 x 7/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A114/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1" + }, + { + "partNumber": "90044A111", + "name": "#4-40 x 1\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A111/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_80" + }, + { + "partNumber": "91251A115", + "name": "#4-40 x 1\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A115/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_4" + }, + { + "partNumber": "91864A029", + "name": "#4-40 x 1-1/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A029/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_8" + }, + { + "partNumber": "91251A078", + "name": "#4-40 x 1-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A078/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_2" + }, + { + "partNumber": "91251A210", + "name": "#4-40 x 1-3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A210/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_20" + }, + { + "partNumber": "91251A149", + "name": "#4-40 x 1-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A149/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_5_8" + }, + { + "partNumber": "91251A233", + "name": "#4-40 x 1-5/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A233/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_4" + }, + { + "partNumber": "91251A160", + "name": "#4-40 x 1-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A160/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_40" + }, + { + "partNumber": "91251A162", + "name": "#4-40 x 2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A162/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_7_8" + }, + { + "partNumber": "91251A211", + "name": "#4-40 x 2-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A211/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2" + }, + { + "partNumber": "91251A834", + "name": "#4-40 x 2-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A834/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_20" + }, + { + "partNumber": "91251A513", + "name": "#4-40 x 2-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A513/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_4" + }, + { + "partNumber": "91251A212", + "name": "#4-40 x 3\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A212/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_40" + }, + { + "partNumber": "90044A291", + "name": "#4-40 x 3-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A291/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_2" + }, + { + "partNumber": "90044A292", + "name": "#4-40 x 4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A292/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_4_" + }, + { + "partNumber": "90128A102", + "name": "#4-40 x 1/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A102/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3_16" + }, + { + "partNumber": "90128A105", + "name": "#4-40 x 3/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A105/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_5_16" + }, + { + "partNumber": "90128A106", + "name": "#4-40 x 1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A106/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "90128A107", + "name": "#4-40 x 5/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A107/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_7_16" + }, + { + "partNumber": "90128A108", + "name": "#4-40 x 3/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A108/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_2" + }, + { + "partNumber": "90128A311", + "name": "#4-40 x 7/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A311/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_9_16" + }, + { + "partNumber": "90128A110", + "name": "#4-40 x 1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A110/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_5_8" + }, + { + "partNumber": "90128A112", + "name": "#4-40 x 5/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A112/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3_4" + }, + { + "partNumber": "90128A113", + "name": "#4-40 x 3/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A113/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_7_8" + }, + { + "partNumber": "90128A114", + "name": "#4-40 x 7/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A114/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1" + }, + { + "partNumber": "90128A115", + "name": "#4-40 x 1\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A115/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_4" + }, + { + "partNumber": "90128A119", + "name": "#4-40 x 1-1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A119/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_2" + }, + { + "partNumber": "90128A123", + "name": "#4-40 x 1-1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A123/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_5_8" + }, + { + "partNumber": "90128A103", + "name": "#4-40 x 2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A103/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_7_8" + }, + { + "partNumber": "91255A103", + "name": "#4-40 x 1/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A103/", + "configurationKey": "List_ztF5Nwo3ZVISRf=Default" + }, + { + "partNumber": "91255A105", + "name": "#4-40 x 3/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A105/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_16_" + }, + { + "partNumber": "91255A106", + "name": "#4-40 x 1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A106/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "91255A107", + "name": "#4-40 x 5/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A107/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_5_16_" + }, + { + "partNumber": "91255A021", + "name": "#4-40 x 7/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A021/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_7_16_" + }, + { + "partNumber": "91255A110", + "name": "#4-40 x 1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A110/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_2_" + }, + { + "partNumber": "91255A022", + "name": "#4-40 x 9/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A022/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_9_16_" + }, + { + "partNumber": "91255A112", + "name": "#4-40 x 5/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A112/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_5_8_" + }, + { + "partNumber": "91255A113", + "name": "#4-40 x 3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A113/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_4_" + }, + { + "partNumber": "91255A115", + "name": "#4-40 x 7/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A115/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_7_8_" + }, + { + "partNumber": "91255A116", + "name": "#4-40 x 1\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A116/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_" + }, + { + "partNumber": "91255A117", + "name": "#4-40 x 1-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A117/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_125_" + }, + { + "partNumber": "91255A023", + "name": "#4-40 x 1-1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A023/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_25_" + }, + { + "partNumber": "91255A118", + "name": "#4-40 x 2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A118/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_375_" + }, + { + "partNumber": "91306A253", + "name": "#4-40 x 1/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A253/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=Default" + }, + { + "partNumber": "91306A711", + "name": "#4-40 x 3/16\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A711/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_3_16_" + }, + { + "partNumber": "91306A311", + "name": "#4-40 x 1/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A311/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "91306A315", + "name": "#4-40 x 3/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A315/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "null", + "name": "#4-40 x 7/16\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_7_16_" + }, + { + "partNumber": "91306A318", + "name": "#4-40 x 1/2\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A318/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_2_" + }, + { + "partNumber": "91306A254", + "name": "#4-40 x 5/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A254/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_5_8_" + }, + { + "partNumber": "91306A255", + "name": "#4-40 x 3/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A255/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_3_4_" + }, + { + "partNumber": "null", + "name": "#4-40 x 1/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=Default" + }, + { + "partNumber": "null", + "name": "#4-40 x 5/32\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_4_" + }, + { + "partNumber": "91263A375", + "name": "#4-40 x 3/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A375/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_5_16_" + }, + { + "partNumber": "91263A376", + "name": "#4-40 x 1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A376/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat" + }, + { + "partNumber": "91263A136", + "name": "#4-40 x 5/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A136/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_7_16_" + }, + { + "partNumber": "91263A501", + "name": "#4-40 x 3/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A501/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_2_" + }, + { + "partNumber": "null", + "name": "#4-40 x 7/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_9_16_" + }, + { + "partNumber": "91263A503", + "name": "#4-40 x 1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A503/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_5_8_" + }, + { + "partNumber": "null", + "name": "#4-40 x 9/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_3_4_" + }, + { + "partNumber": "91263A961", + "name": "#4-40 x 5/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A961/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_7_8_" + }, + { + "partNumber": "91263A962", + "name": "#4-40 x 3/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A962/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_" + }, + { + "partNumber": "null", + "name": "#4-40 x 7/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_125_" + }, + { + "partNumber": "null", + "name": "#4-40 x 1\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_25_" + }, + { + "partNumber": "null", + "name": "#4-40 x 1-1/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_375_" + }, + { + "partNumber": "null", + "name": "#4-40 x 1-1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_5_" + }, + { + "partNumber": "null", + "name": "#4-40 x 1-1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_625_" + }, + { + "partNumber": "91263A375", + "name": "#4-40 x 3/16\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A375/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_5_16_" + }, + { + "partNumber": "91263A376", + "name": "#4-40 x 1/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A376/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "91263A136", + "name": "#4-40 x 5/16\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A136/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_7_16_" + }, + { + "partNumber": "91263A501", + "name": "#4-40 x 3/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A501/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_2_" + }, + { + "partNumber": "91263A503", + "name": "#4-40 x 1/2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A503/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_5_8_" + }, + { + "partNumber": "91263A961", + "name": "#4-40 x 5/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A961/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_7_8_" + }, + { + "partNumber": "91263A962", + "name": "#4-40 x 3/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A962/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_" + } + ] + }, + { + "insertableId": "165a0108-b57d-4e38-a804-529ad23ce572", + "name": "#4-40 Nut", + "vendors": [], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "4b2e333c43c1e7bee9da7c84", + "parameters": [ + { + "id": "List_VQmGkBMsSe53FE", + "name": "Type", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "Nylock" + }, + { + "id": "Thin", + "name": "Thin Nylock" + }, + { + "id": "Hex", + "name": "Hex" + }, + { + "id": "Thin_Hex", + "name": "Thin Hex" + } + ], + "optionConditions": [] + } + ], + "records": [ + { + "partNumber": "90631A005", + "name": "#4-40 Nylon-Insert Locknut", + "url": "https://www.mcmaster.com/90631A005/", + "configurationKey": "" + }, + { + "partNumber": "90633A005", + "name": "#4-40 Thin Nylon-Insert Locknut", + "url": "https://www.mcmaster.com/90633A005/", + "configurationKey": "List_VQmGkBMsSe53FE=Thin" + }, + { + "partNumber": "90480A005", + "name": "#4-40 Hex Nut", + "url": "https://www.mcmaster.com/90480A005/", + "configurationKey": "List_VQmGkBMsSe53FE=Hex" + }, + { + "partNumber": "90760A005", + "name": "#4-40 Thin Hex Nut", + "url": "https://www.mcmaster.com/90760A005/", + "configurationKey": "List_VQmGkBMsSe53FE=Thin_Hex" + } + ] + }, + { + "insertableId": "a9e21c60-91e2-4071-9eb4-ed3c1ee133ce", + "name": "#6-32 Bolt (MCM)", + "vendors": [ + "MCM" + ], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "a6d218423d44dfb0fe52922f", + "parameters": [ + { + "id": "List_TmRH7NJBvedWLl", + "name": "Head Type", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Socket", + "name": "Socket" + }, + { + "id": "Default", + "name": "Button" + }, + { + "id": "Flat", + "name": "Flat (Countersink)" + } + ], + "optionConditions": [] + }, + { + "id": "List_5GpG8SQ4jcTSSF", + "name": "Finish", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "Black Oxide" + }, + { + "id": "Zinc_Plates", + "name": "Zinc Plated" + } + ], + "optionConditions": [] + }, + { + "id": "List_rtxRa7CTeUKBGP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Socket" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8", + "options": [ + { + "id": "Default", + "name": "3/32\"" + }, + { + "id": "_3_16", + "name": "1/8\"" + }, + { + "id": "_1_4", + "name": "5/32\"" + }, + { + "id": "_5_16", + "name": "3/16\"" + }, + { + "id": "_3_8", + "name": "1/4\"" + }, + { + "id": "_7_16", + "name": "5/16\"" + }, + { + "id": "_1_2", + "name": "3/8\"" + }, + { + "id": "_9_16", + "name": "7/16\"" + }, + { + "id": "_5_8", + "name": "1/2\"" + }, + { + "id": "_11_16", + "name": "9/16\"" + }, + { + "id": "_3_4", + "name": "5/8\"" + }, + { + "id": "_7_8", + "name": "3/4\"" + }, + { + "id": "_1", + "name": "7/8\"" + }, + { + "id": "_1_1_80", + "name": "1\"" + }, + { + "id": "_1_1_4", + "name": "1-1/8\"" + }, + { + "id": "_1_3_8", + "name": "1-1/4\" Full Thread" + }, + { + "id": "_1_1_2", + "name": "1-1/4\" Partial Thread" + }, + { + "id": "_1_1_20", + "name": "1-3/8\"" + }, + { + "id": "_1_5_8", + "name": "1-1/2\"" + }, + { + "id": "_1_3_4", + "name": "1-5/8\"" + }, + { + "id": "_1_3_40", + "name": "1-3/4\"" + }, + { + "id": "_1_7_8", + "name": "1-7/8\"" + }, + { + "id": "_2", + "name": "2\"" + }, + { + "id": "_20", + "name": "2-1/4\"" + }, + { + "id": "_2_1_4", + "name": "2-1/2\"" + }, + { + "id": "_2_1_40", + "name": "2-3/4\"" + }, + { + "id": "_2_1_2", + "name": "3\"" + }, + { + "id": "_4_", + "name": "3-1/2\"" + }, + { + "id": "_4__Partial_Thread", + "name": "4\"" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_3_16", + "_1_4", + "_5_16", + "_3_8", + "_7_16", + "_1_2", + "_9_16", + "_5_8", + "_11_16", + "_3_4", + "_7_8", + "_1", + "_1_1_80", + "_1_1_4", + "_1_3_8", + "_1_1_2", + "_1_1_20", + "_1_5_8", + "_1_3_4", + "_1_3_40", + "_1_7_8", + "_2", + "_20", + "_2_1_4", + "_2_1_40", + "_2_1_2", + "_4_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_3_16", + "_5_16", + "_3_8", + "_7_16", + "_1_2", + "_9_16", + "_5_8", + "_3_4", + "_7_8", + "_1", + "_1_1_4", + "_1_1_2", + "_1_5_8", + "_1_7_8" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_ztF5Nwo3ZVISRf", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Default" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8_", + "options": [ + { + "id": "Default", + "name": "1/8\"" + }, + { + "id": "_3_16_", + "name": "3/16\"" + }, + { + "id": "_1_4_", + "name": "1/4\"" + }, + { + "id": "_5_16_", + "name": "5/16\"" + }, + { + "id": "_3_8_", + "name": "3/8\"" + }, + { + "id": "_7_16_", + "name": "7/16\"" + }, + { + "id": "_1_2_", + "name": "1/2\"" + }, + { + "id": "_9_16_", + "name": "9/16\"" + }, + { + "id": "_5_8_", + "name": "5/8\"" + }, + { + "id": "_3_4_", + "name": "3/4\"" + }, + { + "id": "_7_8_", + "name": "7/8\"" + }, + { + "id": "_1_", + "name": "1\" Full Thread" + }, + { + "id": "_1_125_", + "name": "1\" Partial Thread" + }, + { + "id": "_1_25_", + "name": "1-1/8\"" + }, + { + "id": "_1_375_", + "name": "1-1/4\"" + }, + { + "id": "_1_1_2_", + "name": "1-1/2\"" + }, + { + "id": "_1_3_4_", + "name": "1-3/4\"" + }, + { + "id": "_2_", + "name": "2\"" + }, + { + "id": "_3_", + "name": "3\"" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_3_16_", + "_1_4_", + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_9_16_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_125_", + "_1_25_", + "_1_375_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "Default", + "_3_16_", + "_1_4_", + "_3_8_", + "_7_16_", + "_1_2_", + "_5_8_", + "_3_4_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_cpyTEA78YNEBYP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Flat" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8_", + "options": [ + { + "id": "Default", + "name": "1/8\"" + }, + { + "id": "_1_4_", + "name": "5/32\"" + }, + { + "id": "_5_16_", + "name": "3/16\"" + }, + { + "id": "_3_8_", + "name": "1/4\"" + }, + { + "id": "_7_16_", + "name": "5/16\"" + }, + { + "id": "_1_2_", + "name": "3/8\"" + }, + { + "id": "_9_16_", + "name": "7/16\"" + }, + { + "id": "_5_8_", + "name": "1/2\"" + }, + { + "id": "_3_4_", + "name": "9/16\"" + }, + { + "id": "_7_8_", + "name": "5/8\"" + }, + { + "id": "_1_", + "name": "3/4\"" + }, + { + "id": "_1_125_", + "name": "7/8\"" + }, + { + "id": "_1_25_", + "name": "1\"" + }, + { + "id": "_1_375_", + "name": "1-1/4\"" + }, + { + "id": "_1_5_", + "name": "1-1/2\"" + }, + { + "id": "_1_625_", + "name": "1-3/4\"" + }, + { + "id": "_2_", + "name": "2\"" + }, + { + "id": "_2_1_2_", + "name": "2-1/2\"" + }, + { + "id": "_3_", + "name": "3\"" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_1_4_", + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_9_16_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_125_", + "_1_25_", + "_1_375_", + "_1_5_", + "_1_625_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_5_8_", + "_7_8_", + "_1_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + } + ], + "records": [ + { + "partNumber": "91255A146", + "name": "#6-32 x 3/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A146/", + "configurationKey": "" + }, + { + "partNumber": "91251A268", + "name": "#6-32 x 3/32\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A268/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=Default" + }, + { + "partNumber": "91864A084", + "name": "#6-32 x 1/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A084/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_16" + }, + { + "partNumber": "91251A269", + "name": "#6-32 x 5/32\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A269/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_4" + }, + { + "partNumber": "91864A085", + "name": "#6-32 x 3/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A085/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_16" + }, + { + "partNumber": "91251A144", + "name": "#6-32 x 1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A144/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket" + }, + { + "partNumber": "91864A019", + "name": "#6-32 x 5/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A019/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_7_16" + }, + { + "partNumber": "91251A146", + "name": "#6-32 x 3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A146/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_2" + }, + { + "partNumber": "91864A023", + "name": "#6-32 x 7/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A023/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_9_16" + }, + { + "partNumber": "91251A148", + "name": "#6-32 x 1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A148/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_8" + }, + { + "partNumber": "91864A086", + "name": "#6-32 x 9/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A086/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_11_16" + }, + { + "partNumber": "91251A150", + "name": "#6-32 x 5/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A150/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_4" + }, + { + "partNumber": "91251A151", + "name": "#6-32 x 3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A151/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_7_8" + }, + { + "partNumber": "91251A152", + "name": "#6-32 x 7/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A152/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1" + }, + { + "partNumber": "91251A153", + "name": "#6-32 x 1\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A153/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_80" + }, + { + "partNumber": "91251A870", + "name": "#6-32 x 1-1/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A870/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_4" + }, + { + "partNumber": "90044A112", + "name": "#6-32 x 1-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A112/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_8" + }, + { + "partNumber": "91251A155", + "name": "#6-32 x 1-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A155/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_2" + }, + { + "partNumber": "91251A874", + "name": "#6-32 x 1-3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A874/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_20" + }, + { + "partNumber": "91251A157", + "name": "#6-32 x 1-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A157/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_5_8" + }, + { + "partNumber": "91251A875", + "name": "#6-32 x 1-5/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A875/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_4" + }, + { + "partNumber": "91251A158", + "name": "#6-32 x 1-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A158/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_40" + }, + { + "partNumber": "91251A270", + "name": "#6-32 x 1-7/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A270/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_7_8" + }, + { + "partNumber": "91251A159", + "name": "#6-32 x 2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A159/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2" + }, + { + "partNumber": "91251A876", + "name": "#6-32 x 2-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A876/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_20" + }, + { + "partNumber": "91251A871", + "name": "#6-32 x 2-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A871/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_4" + }, + { + "partNumber": "91251A872", + "name": "#6-32 x 2-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A872/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_40" + }, + { + "partNumber": "91251A873", + "name": "#6-32 x 3\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A873/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_2" + }, + { + "partNumber": "90044A295", + "name": "#6-32 x 3-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A295/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_4_" + }, + { + "partNumber": "90128A118", + "name": "#6-32 x 1/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A118/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3_16" + }, + { + "partNumber": "90128A121", + "name": "#6-32 x 3/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A121/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_5_16" + }, + { + "partNumber": "90128A144", + "name": "#6-32 x 1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A144/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "90128A145", + "name": "#6-32 x 5/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A145/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_7_16" + }, + { + "partNumber": "90128A146", + "name": "#6-32 x 3/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A146/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_2" + }, + { + "partNumber": "90128A312", + "name": "#6-32 x 7/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A312/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_9_16" + }, + { + "partNumber": "90128A148", + "name": "#6-32 x 1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A148/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_5_8" + }, + { + "partNumber": "90128A150", + "name": "#6-32 x 5/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A150/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3_4" + }, + { + "partNumber": "90128A151", + "name": "#6-32 x 3/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A151/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_7_8" + }, + { + "partNumber": "90128A152", + "name": "#6-32 x 7/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A152/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1" + }, + { + "partNumber": "null", + "name": "#6-32 x 1-1/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_4" + }, + { + "partNumber": "90128A160", + "name": "#6-32 x 1-1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A160/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_2" + }, + { + "partNumber": "90128A164", + "name": "#6-32 x 1-1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A164/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_5_8" + }, + { + "partNumber": "null", + "name": "#6-32 x 1-7/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_7_8" + }, + { + "partNumber": "91255A140", + "name": "#6-32 x 1/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A140/", + "configurationKey": "List_ztF5Nwo3ZVISRf=Default" + }, + { + "partNumber": "91255A142", + "name": "#6-32 x 3/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A142/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_16_" + }, + { + "partNumber": "91255A144", + "name": "#6-32 x 1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A144/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "91255A145", + "name": "#6-32 x 5/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A145/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_5_16_" + }, + { + "partNumber": "91255A133", + "name": "#6-32 x 7/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A133/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_7_16_" + }, + { + "partNumber": "91255A148", + "name": "#6-32 x 1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A148/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_2_" + }, + { + "partNumber": "91255A134", + "name": "#6-32 x 9/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A134/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_9_16_" + }, + { + "partNumber": "91255A150", + "name": "#6-32 x 5/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A150/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_5_8_" + }, + { + "partNumber": "91255A151", + "name": "#6-32 x 3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A151/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_4_" + }, + { + "partNumber": "91255A152", + "name": "#6-32 x 7/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A152/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_7_8_" + }, + { + "partNumber": "null", + "name": "#6-32 x 1\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_" + }, + { + "partNumber": "91255A153", + "name": "#6-32 x 1\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A153/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_125_" + }, + { + "partNumber": "91255A135", + "name": "#6-32 x 1-1/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A135/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_25_" + }, + { + "partNumber": "91255A155", + "name": "#6-32 x 1-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A155/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_375_" + }, + { + "partNumber": "91306A259", + "name": "#6-32 x 1/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A259/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=Default" + }, + { + "partNumber": "91306A260", + "name": "#6-32 x 3/16\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A260/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_3_16_" + }, + { + "partNumber": "91306A320", + "name": "#6-32 x 1/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A320/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "91306A322", + "name": "#6-32 x 3/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A322/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "91306A262", + "name": "#6-32 x 7/16\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A262/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_7_16_" + }, + { + "partNumber": "91306A324", + "name": "#6-32 x 1/2\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A324/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_2_" + }, + { + "partNumber": "91306A327", + "name": "#6-32 x 5/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A327/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_5_8_" + }, + { + "partNumber": "91306A263", + "name": "#6-32 x 3/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A263/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_3_4_" + }, + { + "partNumber": "null", + "name": "#6-32 x 1/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=Default" + }, + { + "partNumber": "null", + "name": "#6-32 x 5/32\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_4_" + }, + { + "partNumber": "91263A505", + "name": "#6-32 x 3/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A505/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_5_16_" + }, + { + "partNumber": "91263A512", + "name": "#6-32 x 1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A512/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat" + }, + { + "partNumber": "91263A506", + "name": "#6-32 x 5/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A506/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_7_16_" + }, + { + "partNumber": "91263A514", + "name": "#6-32 x 3/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A514/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_2_" + }, + { + "partNumber": "null", + "name": "#6-32 x 7/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_9_16_" + }, + { + "partNumber": "91263A516", + "name": "#6-32 x 1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A516/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_5_8_" + }, + { + "partNumber": "null", + "name": "#6-32 x 9/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_3_4_" + }, + { + "partNumber": "91263A507", + "name": "#6-32 x 5/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A507/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_7_8_" + }, + { + "partNumber": "91263A518", + "name": "#6-32 x 3/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A518/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_" + }, + { + "partNumber": "null", + "name": "#6-32 x 7/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_125_" + }, + { + "partNumber": "91263A520", + "name": "#6-32 x 1\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A520/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_25_" + }, + { + "partNumber": "null", + "name": "#6-32 x 1-1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_375_" + }, + { + "partNumber": "null", + "name": "#6-32 x 1-1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_5_" + }, + { + "partNumber": "null", + "name": "#6-32 x 1-3/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_625_" + }, + { + "partNumber": "91263A505", + "name": "#6-32 x 3/16\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A505/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_5_16_" + }, + { + "partNumber": "91263A512", + "name": "#6-32 x 1/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A512/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "91263A506", + "name": "#6-32 x 5/16\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A506/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_7_16_" + }, + { + "partNumber": "91263A514", + "name": "#6-32 x 3/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A514/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_2_" + }, + { + "partNumber": "91263A516", + "name": "#6-32 x 1/2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A516/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_5_8_" + }, + { + "partNumber": "91263A507", + "name": "#6-32 x 5/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A507/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_7_8_" + }, + { + "partNumber": "91263A518", + "name": "#6-32 x 3/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A518/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_" + } + ] + }, + { + "insertableId": "dd5c55c0-a10a-4294-a9f2-e0e6798506f5", + "name": "#6-32 Nut", + "vendors": [], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "13bba598b4b0e60eb65c61df", + "parameters": [ + { + "id": "List_c7shaMcJKa8cq5", + "name": "Type", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "Nylock" + }, + { + "id": "Thin_Nylock", + "name": "Thin Nylock" + }, + { + "id": "Hex", + "name": "Hex" + }, + { + "id": "Thin_Hex", + "name": "Thin Hex" + } + ], + "optionConditions": [] + } + ], + "records": [ + { + "partNumber": "90631A007", + "name": "#6-32 Nylon-Insert Locknut", + "configurationKey": "" + }, + { + "partNumber": "90633A007", + "name": "#6-32 Thin Nylon-Insert Locknut", + "configurationKey": "List_c7shaMcJKa8cq5=Thin_Nylock" + }, + { + "partNumber": "90480A007", + "name": "#6-32 Hex Nut", + "configurationKey": "List_c7shaMcJKa8cq5=Hex" + }, + { + "partNumber": "90760A007", + "name": "#6-32 Thin Hex Nut", + "configurationKey": "List_c7shaMcJKa8cq5=Thin_Hex" + } + ] + }, + { + "insertableId": "86c2f925-dc0d-43c0-8133-552aac1f9f77", + "name": "#8-32 Bolt (MCM)", + "vendors": [ + "MCM" + ], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "7b4c4d474c835ebe87ae1330", + "parameters": [ + { + "id": "List_TmRH7NJBvedWLl", + "name": "Head Type", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Socket", + "name": "Socket" + }, + { + "id": "Default", + "name": "Button" + }, + { + "id": "Flat", + "name": "Flat (Countersink)" + } + ], + "optionConditions": [] + }, + { + "id": "List_5GpG8SQ4jcTSSF", + "name": "Finish", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "Black Oxide" + }, + { + "id": "Zinc_Plates", + "name": "Zinc Plated" + } + ], + "optionConditions": [] + }, + { + "id": "List_rtxRa7CTeUKBGP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Socket" + } + ] + } + ] + }, + "type": "enum", + "default": "_1_2", + "options": [ + { + "id": "Default", + "name": "3/32\"" + }, + { + "id": "_3_16", + "name": "1/8\"" + }, + { + "id": "_1_4", + "name": "5/32\"" + }, + { + "id": "_5_16", + "name": "3/16\"" + }, + { + "id": "_3_8", + "name": "1/4\"" + }, + { + "id": "_7_16", + "name": "5/16\"" + }, + { + "id": "_1_2", + "name": "3/8\"" + }, + { + "id": "_9_16", + "name": "7/16\"" + }, + { + "id": "_5_8", + "name": "1/2\"" + }, + { + "id": "_11_16", + "name": "9/16\"" + }, + { + "id": "_3_4", + "name": "5/8\"" + }, + { + "id": "_7_8", + "name": "11/16\"" + }, + { + "id": "_1", + "name": "3/4\"" + }, + { + "id": "_1_1_80", + "name": "7/8\"" + }, + { + "id": "_1_1_4", + "name": "1\"" + }, + { + "id": "_1_3_8", + "name": "1-1/8\"" + }, + { + "id": "_1_1_2", + "name": "1-1/4\"" + }, + { + "id": "_1_1_20", + "name": "1-3/8\"" + }, + { + "id": "_1_5_8", + "name": "1-1/2\" Full Thread" + }, + { + "id": "_1_3_4", + "name": "1-1/2\" Partial Thread" + }, + { + "id": "_1_3_40", + "name": "1-5/8\"" + }, + { + "id": "_1_7_8", + "name": "1-3/4\" Full Thread" + }, + { + "id": "_2", + "name": "1-3/4\" Partial Thread" + }, + { + "id": "_20", + "name": "1-7/8\"" + }, + { + "id": "_2_1_4", + "name": "2\" Full Thread" + }, + { + "id": "_2_1_40", + "name": "2\" Partial Thread" + }, + { + "id": "_2_1_2", + "name": "2-1/4\" Full Thread" + }, + { + "id": "_2_1_20", + "name": "2-1/4\" Partial Thread" + }, + { + "id": "_2_3_4", + "name": "2-1/2\" Full Thread" + }, + { + "id": "_2_3_40", + "name": "2-1/2\" Partial Thread" + }, + { + "id": "_3", + "name": "2-3/4\" Full Thread" + }, + { + "id": "_30", + "name": "2-3/4\" Partial Thread" + }, + { + "id": "_3_1_2", + "name": "3\" Full Thread" + }, + { + "id": "_3_1_20", + "name": "3\" Partial Thread" + }, + { + "id": "_3_3_4", + "name": "3-1/4\"" + }, + { + "id": "_4", + "name": "3-1/2\"" + }, + { + "id": "_4_1_2", + "name": "3-3/4\"" + }, + { + "id": "_5", + "name": "4\"" + }, + { + "id": "_5_1_2", + "name": "4-1/2\"" + }, + { + "id": "_6", + "name": "5\"" + }, + { + "id": "Dummy", + "name": "Dummy" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_3_16", + "_1_4", + "_5_16", + "_3_8", + "_7_16", + "_1_2", + "_9_16", + "_5_8", + "_11_16", + "_3_4", + "_7_8", + "_1", + "_1_1_80", + "_1_1_4", + "_1_3_8", + "_1_1_2", + "_1_1_20", + "_1_5_8", + "_1_3_4", + "_1_3_40", + "_1_7_8", + "_2", + "_20", + "_2_1_4", + "_2_1_40", + "_2_1_2", + "_2_1_20", + "_2_3_4", + "_2_3_40", + "_3", + "_30", + "_3_1_2", + "_3_1_20", + "_3_3_4", + "_4", + "_4_1_2", + "_5", + "_5_1_2", + "_6" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_3_16", + "_5_16", + "_3_8", + "_7_16", + "_1_2", + "_9_16", + "_5_8", + "_11_16", + "_3_4", + "_1", + "_1_1_80", + "_1_1_4", + "_1_3_8", + "_1_1_2", + "_1_3_4", + "_2", + "_2_3_40" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_ztF5Nwo3ZVISRf", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Default" + } + ] + } + ] + }, + "type": "enum", + "default": "_7_16_", + "options": [ + { + "id": "Default", + "name": "1/8\"" + }, + { + "id": "_3_16_", + "name": "5/32\"" + }, + { + "id": "_1_4_", + "name": "3/16\"" + }, + { + "id": "_5_16_", + "name": "1/4\"" + }, + { + "id": "_3_8_", + "name": "5/16\"" + }, + { + "id": "_7_16_", + "name": "3/8\"" + }, + { + "id": "_1_2_", + "name": "7/16\"" + }, + { + "id": "_9_16_", + "name": "1/2\"" + }, + { + "id": "_5_8_", + "name": "9/16\"" + }, + { + "id": "_3_4_", + "name": "5/8\"" + }, + { + "id": "_7_8_", + "name": "3/4\"" + }, + { + "id": "_1_", + "name": "7/8\"" + }, + { + "id": "_1_125_", + "name": "1\"" + }, + { + "id": "_1_25_", + "name": "1-1/8\"" + }, + { + "id": "_1_375_", + "name": "1-1/4\"" + }, + { + "id": "_1_5_", + "name": "1-3/8\"" + }, + { + "id": "_1_625_", + "name": "1-1/2\"" + }, + { + "id": "_1_75_", + "name": "1-3/4\"" + }, + { + "id": "_2_", + "name": "2\"" + }, + { + "id": "_2_25_", + "name": "2-1/4\"" + }, + { + "id": "_2_5_", + "name": "2-1/2\"" + }, + { + "id": "_3_", + "name": "3\"" + }, + { + "id": "Dummy", + "name": "Dummy" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_3_16_", + "_1_4_", + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_9_16_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_125_", + "_1_25_", + "_1_375_", + "_1_5_", + "_1_625_", + "_1_75_", + "_2_", + "_2_25_", + "_2_5_", + "_3_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_1_4_", + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_9_16_", + "_3_4_", + "_7_8_", + "_1_", + "_1_125_", + "_1_625_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_cpyTEA78YNEBYP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Flat" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8_", + "options": [ + { + "id": "Copy_of_3_16_", + "name": "5/32\"" + }, + { + "id": "Default", + "name": "3/16\"" + }, + { + "id": "_1_4_", + "name": "1/4\"" + }, + { + "id": "_5_16_", + "name": "5/16\"" + }, + { + "id": "_3_8_", + "name": "3/8\"" + }, + { + "id": "_7_16_", + "name": "7/16\"" + }, + { + "id": "_1_2_", + "name": "1/2\"" + }, + { + "id": "_9_16_", + "name": "9/16\"" + }, + { + "id": "_5_8_", + "name": "5/8\"" + }, + { + "id": "_3_4_", + "name": "3/4\"" + }, + { + "id": "_7_8_", + "name": "7/8\"" + }, + { + "id": "_1_", + "name": "1\"" + }, + { + "id": "_1_125_", + "name": "1-1/8\"" + }, + { + "id": "_1_25_", + "name": "1-1/4\"" + }, + { + "id": "_1_375_", + "name": "1-3/8\"" + }, + { + "id": "_1_5_", + "name": "1-1/2\"" + }, + { + "id": "_1_625_", + "name": "1-5/8\"" + }, + { + "id": "_1_75_", + "name": "1-3/4\"" + }, + { + "id": "_2_", + "name": "2\"" + }, + { + "id": "_2_25_", + "name": "2-1/4\"" + }, + { + "id": "_2_5_", + "name": "2-1/2\"" + }, + { + "id": "_3_", + "name": "3\"" + }, + { + "id": "Dummy", + "name": "Dummy" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Copy_of_3_16_", + "Default", + "_1_4_", + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_9_16_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_125_", + "_1_25_", + "_1_375_", + "_1_5_", + "_1_625_", + "_1_75_", + "_2_", + "_2_25_", + "_2_5_", + "_3_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_1_4_", + "_5_16_", + "_3_8_", + "_1_2_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_25_", + "_1_5_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + } + ], + "records": [ + { + "partNumber": "91255A192", + "name": "#8-32 x 3/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A192/", + "configurationKey": "" + }, + { + "partNumber": "91251A271", + "name": "#8-32 x 3/32\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A271/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=Default" + }, + { + "partNumber": "91251A179", + "name": "#8-32 x 1/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A179/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_16" + }, + { + "partNumber": "91251A272", + "name": "#8-32 x 5/32\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A272/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_4" + }, + { + "partNumber": "91251A180", + "name": "#8-32 x 3/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A180/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_16" + }, + { + "partNumber": "91251A190", + "name": "#8-32 x 1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A190/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_8" + }, + { + "partNumber": "91251A191", + "name": "#8-32 x 5/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A191/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_7_16" + }, + { + "partNumber": "91251A192", + "name": "#8-32 x 3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A192/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket" + }, + { + "partNumber": "91864A024", + "name": "#8-32 x 7/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A024/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_9_16" + }, + { + "partNumber": "91251A194", + "name": "#8-32 x 1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A194/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_8" + }, + { + "partNumber": "91864A033", + "name": "#8-32 x 9/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A033/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_11_16" + }, + { + "partNumber": "91251A196", + "name": "#8-32 x 5/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A196/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_4" + }, + { + "partNumber": "90044A421", + "name": "#8-32 x 11/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A421/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_7_8" + }, + { + "partNumber": "91251A197", + "name": "#8-32 x 3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A197/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1" + }, + { + "partNumber": "91251A198", + "name": "#8-32 x 7/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A198/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_80" + }, + { + "partNumber": "91251A199", + "name": "#8-32 x 1\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A199/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_4" + }, + { + "partNumber": "91864A025", + "name": "#8-32 x 1-1/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A025/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_8" + }, + { + "partNumber": "91251A201", + "name": "#8-32 x 1-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A201/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_2" + }, + { + "partNumber": "91864A026", + "name": "#8-32 x 1-3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A026/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_20" + }, + { + "partNumber": "90044A511", + "name": "#8-32 x 1-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A511/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_5_8" + }, + { + "partNumber": "91251A203", + "name": "#8-32 x 1-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A203/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_4" + }, + { + "partNumber": "91864A027", + "name": "#8-32 x 1-5/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A027/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_40" + }, + { + "partNumber": "90044A512", + "name": "#8-32 x 1-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A512/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_7_8" + }, + { + "partNumber": "91251A082", + "name": "#8-32 x 1-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A082/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2" + }, + { + "partNumber": "91251A188", + "name": "#8-32 x 1-7/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A188/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_20" + }, + { + "partNumber": "90044A113", + "name": "#8-32 x 2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A113/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_4" + }, + { + "partNumber": "91251A205", + "name": "#8-32 x 2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A205/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_40" + }, + { + "partNumber": "90044A513", + "name": "#8-32 x 2-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A513/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_2" + }, + { + "partNumber": "91251A184", + "name": "#8-32 x 2-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A184/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_20" + }, + { + "partNumber": "90044A514", + "name": "#8-32 x 2-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A514/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_3_4" + }, + { + "partNumber": "91251A207", + "name": "#8-32 x 2-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A207/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_3_40" + }, + { + "partNumber": "90044A515", + "name": "#8-32 x 2-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A515/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3" + }, + { + "partNumber": "91251A827", + "name": "#8-32 x 2-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A827/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_30" + }, + { + "partNumber": "90044A516", + "name": "#8-32 x 3\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A516/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_1_2" + }, + { + "partNumber": "91251A086", + "name": "#8-32 x 3\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A086/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_1_20" + }, + { + "partNumber": "91251A189", + "name": "#8-32 x 3-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A189/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_3_4" + }, + { + "partNumber": "91251A186", + "name": "#8-32 x 3-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A186/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_4" + }, + { + "partNumber": "91251A285", + "name": "#8-32 x 3-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A285/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_4_1_2" + }, + { + "partNumber": "91251A193", + "name": "#8-32 x 4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A193/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5" + }, + { + "partNumber": "90044A297", + "name": "#8-32 x 4-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A297/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_1_2" + }, + { + "partNumber": "90044A298", + "name": "#8-32 x 5\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A298/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_6" + }, + { + "partNumber": "90128A122", + "name": "#8-32 x 1/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A122/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3_16" + }, + { + "partNumber": "90128A124", + "name": "#8-32 x 3/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A124/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_5_16" + }, + { + "partNumber": "90128A191", + "name": "#8-32 x 1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A191/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3_8" + }, + { + "partNumber": "90128A125", + "name": "#8-32 x 5/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A125/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_7_16" + }, + { + "partNumber": "90128A192", + "name": "#8-32 x 3/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A192/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "90128A313", + "name": "#8-32 x 7/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A313/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_9_16" + }, + { + "partNumber": "90128A194", + "name": "#8-32 x 1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A194/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_5_8" + }, + { + "partNumber": "90128A314", + "name": "#8-32 x 9/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A314/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_11_16" + }, + { + "partNumber": "90128A196", + "name": "#8-32 x 5/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A196/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3_4" + }, + { + "partNumber": "90128A197", + "name": "#8-32 x 3/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A197/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1" + }, + { + "partNumber": "90128A198", + "name": "#8-32 x 7/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A198/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_80" + }, + { + "partNumber": "90128A199", + "name": "#8-32 x 1\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A199/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_4" + }, + { + "partNumber": "90128A126", + "name": "#8-32 x 1-1/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A126/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_3_8" + }, + { + "partNumber": "90128A201", + "name": "#8-32 x 1-1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A201/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_2" + }, + { + "partNumber": "90128A203", + "name": "#8-32 x 1-1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A203/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_3_4" + }, + { + "partNumber": "90128A206", + "name": "#8-32 x 1-3/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A206/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_2" + }, + { + "partNumber": "90128A213", + "name": "#8-32 x 2-1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A213/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_2_3_40" + }, + { + "partNumber": "91255A162", + "name": "#8-32 x 1/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A162/", + "configurationKey": "List_ztF5Nwo3ZVISRf=Default" + }, + { + "partNumber": "91255A163", + "name": "#8-32 x 5/32\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A163/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_16_" + }, + { + "partNumber": "91255A189", + "name": "#8-32 x 3/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A189/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "91255A190", + "name": "#8-32 x 1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A190/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_5_16_" + }, + { + "partNumber": "91255A191", + "name": "#8-32 x 5/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A191/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_8_" + }, + { + "partNumber": "91255A164", + "name": "#8-32 x 7/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A164/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_2_" + }, + { + "partNumber": "91255A194", + "name": "#8-32 x 1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A194/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_9_16_" + }, + { + "partNumber": "91255A165", + "name": "#8-32 x 9/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A165/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_5_8_" + }, + { + "partNumber": "91255A196", + "name": "#8-32 x 5/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A196/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_4_" + }, + { + "partNumber": "91255A197", + "name": "#8-32 x 3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A197/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_7_8_" + }, + { + "partNumber": "91255A166", + "name": "#8-32 x 7/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A166/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_" + }, + { + "partNumber": "91255A199", + "name": "#8-32 x 1\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A199/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_125_" + }, + { + "partNumber": "91255A167", + "name": "#8-32 x 1-1/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A167/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_25_" + }, + { + "partNumber": "91255A201", + "name": "#8-32 x 1-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A201/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_375_" + }, + { + "partNumber": "91255A168", + "name": "#8-32 x 1-3/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A168/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_5_" + }, + { + "partNumber": "91255A203", + "name": "#8-32 x 1-1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A203/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_625_" + }, + { + "partNumber": "91255A169", + "name": "#8-32 x 1-3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A169/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_75_" + }, + { + "partNumber": "91255A205", + "name": "#8-32 x 2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A205/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_" + }, + { + "partNumber": "91255A206", + "name": "#8-32 x 2-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A206/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_25_" + }, + { + "partNumber": "91255A811", + "name": "#8-32 x 2-1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A811/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_5_" + }, + { + "partNumber": "91255A812", + "name": "#8-32 x 3\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A812/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_" + }, + { + "partNumber": "91306A264", + "name": "#8-32 x 3/16\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A264/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "91306A333", + "name": "#8-32 x 1/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A333/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_5_16_" + }, + { + "partNumber": "91306A265", + "name": "#8-32 x 5/16\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A265/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_3_8_" + }, + { + "partNumber": "91306A335", + "name": "#8-32 x 3/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A335/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "91306A266", + "name": "#8-32 x 7/16\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A266/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_2_" + }, + { + "partNumber": "91306A337", + "name": "#8-32 x 1/2\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A337/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_9_16_" + }, + { + "partNumber": "91306A338", + "name": "#8-32 x 5/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A338/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_3_4_" + }, + { + "partNumber": "91306A339", + "name": "#8-32 x 3/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A339/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_7_8_" + }, + { + "partNumber": "91306A267", + "name": "#8-32 x 7/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A267/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_" + }, + { + "partNumber": "91306A340", + "name": "#8-32 x 1\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A340/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_125_" + }, + { + "partNumber": "91306A268", + "name": "#8-32 x 1-1/2\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A268/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_625_" + }, + { + "partNumber": "null", + "name": "#8-32 x 5/32\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=Copy_of_3_16_" + }, + { + "partNumber": "null", + "name": "#8-32 x 3/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=Default" + }, + { + "partNumber": "91263A521", + "name": "#8-32 x 1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A521/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_4_" + }, + { + "partNumber": "91263A523", + "name": "#8-32 x 5/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A523/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_5_16_" + }, + { + "partNumber": "91263A522", + "name": "#8-32 x 3/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A522/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat" + }, + { + "partNumber": "null", + "name": "#8-32 x 7/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_7_16_" + }, + { + "partNumber": "91263A524", + "name": "#8-32 x 1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A524/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_2_" + }, + { + "partNumber": "null", + "name": "#8-32 x 9/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_9_16_" + }, + { + "partNumber": "91263A525", + "name": "#8-32 x 5/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A525/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_5_8_" + }, + { + "partNumber": "91263A526", + "name": "#8-32 x 3/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A526/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_3_4_" + }, + { + "partNumber": "91263A527", + "name": "#8-32 x 7/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A527/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_7_8_" + }, + { + "partNumber": "91263A528", + "name": "#8-32 x 1\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A528/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_" + }, + { + "partNumber": "null", + "name": "#8-32 x 1-1/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_125_" + }, + { + "partNumber": "91263A142", + "name": "#8-32 x 1-1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A142/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_25_" + }, + { + "partNumber": "null", + "name": "#8-32 x 1-3/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_375_" + }, + { + "partNumber": "91263A145", + "name": "#8-32 x 1-1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A145/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_5_" + }, + { + "partNumber": "null", + "name": "#8-32 x 1-5/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_625_" + }, + { + "partNumber": "null", + "name": "#8-32 x 1-3/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_75_" + }, + { + "partNumber": "null", + "name": "#8-32 x 2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_2_" + }, + { + "partNumber": "null", + "name": "#8-32 x 2-1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_2_25_" + }, + { + "partNumber": "null", + "name": "#8-32 x 2-1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_2_5_" + }, + { + "partNumber": "null", + "name": "#8-32 x 3\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_3_" + }, + { + "partNumber": "91263A521", + "name": "#8-32 x 1/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A521/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_4_" + }, + { + "partNumber": "91263A523", + "name": "#8-32 x 5/16\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A523/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_5_16_" + }, + { + "partNumber": "91263A522", + "name": "#8-32 x 3/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A522/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "91263A524", + "name": "#8-32 x 1/2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A524/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_2_" + }, + { + "partNumber": "91263A525", + "name": "#8-32 x 5/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A525/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_5_8_" + }, + { + "partNumber": "91263A526", + "name": "#8-32 x 3/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A526/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_3_4_" + }, + { + "partNumber": "91263A527", + "name": "#8-32 x 7/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A527/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_7_8_" + }, + { + "partNumber": "91263A528", + "name": "#8-32 x 1\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A528/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_" + }, + { + "partNumber": "91263A142", + "name": "#8-32 x 1-1/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A142/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_25_" + }, + { + "partNumber": "91263A145", + "name": "#8-32 x 1-1/2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A145/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_5_" + } + ] + }, + { + "insertableId": "e4523efc-7cc1-4f5d-b93a-4c1c40544a1f", + "name": "#8-32 Nut", + "vendors": [], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "c87d09c0f5c3c5f40e3b0c0d", + "parameters": [ + { + "id": "List_W8AN11pwjxxWqR", + "name": "Type", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "Nylock" + }, + { + "id": "Thin_Nylock", + "name": "Thin Nylock" + }, + { + "id": "Hex_Nut", + "name": "Hex Nut" + }, + { + "id": "Square_Nut", + "name": "Square Nut" + } + ], + "optionConditions": [] + } + ], + "records": [ + { + "partNumber": "90631A009", + "name": "#8-32 Nylon-Insert Locknut", + "url": "https://www.mcmaster.com/90631A009/", + "configurationKey": "" + }, + { + "partNumber": "90633A009", + "name": "#8-32 Thin Nylon-Insert Locknut", + "url": "https://www.mcmaster.com/90633A009/", + "configurationKey": "List_W8AN11pwjxxWqR=Thin_Nylock" + }, + { + "partNumber": "90480A009", + "name": "#8-32 Hex Nut", + "url": "https://www.mcmaster.com/90480A009/", + "configurationKey": "List_W8AN11pwjxxWqR=Hex_Nut" + }, + { + "partNumber": "94855A216", + "name": "#8-32 Square Nut", + "url": "https://www.mcmaster.com/94855A216/", + "configurationKey": "List_W8AN11pwjxxWqR=Square_Nut" + } + ] + }, + { + "insertableId": "87cfd048-aa58-4008-9fcb-a8ceb9dbeeb1", + "name": "1/4-20 Bolt (MCM)", + "vendors": [ + "MCM" + ], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "3da501a1b21a174208288f24", + "parameters": [ + { + "id": "List_TmRH7NJBvedWLl", + "name": "Head Type", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Socket", + "name": "Socket" + }, + { + "id": "Default", + "name": "Button" + }, + { + "id": "Flat", + "name": "Flat (Countersink)" + } + ], + "optionConditions": [] + }, + { + "id": "List_5GpG8SQ4jcTSSF", + "name": "Finish", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "Black Oxide" + }, + { + "id": "Zinc_Plates", + "name": "Zinc Plated" + } + ], + "optionConditions": [] + }, + { + "id": "List_rtxRa7CTeUKBGP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Socket" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8", + "options": [ + { + "id": "Default", + "name": "1/4\"" + }, + { + "id": "_3_16", + "name": "5/16\"" + }, + { + "id": "_1_4", + "name": "3/8\"" + }, + { + "id": "_5_16", + "name": "7/16\"" + }, + { + "id": "_3_8", + "name": "1/2\"" + }, + { + "id": "_7_16", + "name": "9/16\"" + }, + { + "id": "_1_2", + "name": "5/8\"" + }, + { + "id": "_9_16", + "name": "11/16\"" + }, + { + "id": "_5_8", + "name": "3/4\"" + }, + { + "id": "_11_16", + "name": "7/8\"" + }, + { + "id": "_3_4", + "name": "1\"" + }, + { + "id": "_7_8", + "name": "1-1/8\"" + }, + { + "id": "_1", + "name": "1-1/4\"" + }, + { + "id": "_1_1_80", + "name": "1-3/8\"" + }, + { + "id": "_1_1_4", + "name": "1-1/2\"" + }, + { + "id": "_1_3_8", + "name": "1-5/8\"" + }, + { + "id": "_1_1_2", + "name": "1-3/4\"" + }, + { + "id": "_1_1_20", + "name": "1-7/8\"" + }, + { + "id": "_1_5_8", + "name": "2\"" + }, + { + "id": "_1_3_4", + "name": "2-1/4\"" + }, + { + "id": "_1_3_40", + "name": "2-3/8\"" + }, + { + "id": "_1_7_8", + "name": "2-1/2\"" + }, + { + "id": "_2", + "name": "2-5/8\"" + }, + { + "id": "_20", + "name": "2-3/4\"" + }, + { + "id": "_2_1_4", + "name": "3\"" + }, + { + "id": "_2_1_40", + "name": "3-1/4\"" + }, + { + "id": "_2_1_2", + "name": "3-1/2\"" + }, + { + "id": "_2_1_20", + "name": "3-3/4\"" + }, + { + "id": "_2_3_4", + "name": "4\"" + }, + { + "id": "_2_3_40", + "name": "4-1/4\"" + }, + { + "id": "_3", + "name": "4-1/2\"" + }, + { + "id": "_30", + "name": "5\"" + }, + { + "id": "_3_1_2", + "name": "5-1/4\"" + }, + { + "id": "_3_1_20", + "name": "5-1/2\"" + }, + { + "id": "_3_3_4", + "name": "5-3/4\"" + }, + { + "id": "_4", + "name": "6\"" + }, + { + "id": "_4_1_2", + "name": "6-1/4\"" + }, + { + "id": "_5", + "name": "6-1/2\"" + }, + { + "id": "_5_1_2", + "name": "7\"" + }, + { + "id": "_6", + "name": "7-1/2\"" + }, + { + "id": "_6_1_2", + "name": "8\"" + }, + { + "id": "_7", + "name": "8-1/2\"" + }, + { + "id": "Dummy", + "name": "9\"" + }, + { + "id": "_10_", + "name": "10\"" + }, + { + "id": "Untitled", + "name": "Untitled" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_3_16", + "_1_4", + "_5_16", + "_3_8", + "_7_16", + "_1_2", + "_9_16", + "_5_8", + "_11_16", + "_3_4", + "_7_8", + "_1", + "_1_1_80", + "_1_1_4", + "_1_3_8", + "_1_1_2", + "_1_1_20", + "_1_5_8", + "_1_3_4", + "_1_3_40", + "_1_7_8", + "_2", + "_20", + "_2_1_4", + "_2_1_40", + "_2_1_2", + "_2_1_20", + "_2_3_4", + "_2_3_40", + "_3", + "_30", + "_3_1_2", + "_3_1_20", + "_3_3_4", + "_4", + "_4_1_2", + "_5", + "_5_1_2", + "_6", + "_6_1_2", + "_7", + "Dummy", + "_10_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "Default", + "_1_4", + "_5_16", + "_3_8", + "_7_16", + "_1_2", + "_5_8", + "_11_16", + "_3_4", + "_7_8", + "_1", + "_1_1_80", + "_1_1_4", + "_1_3_8", + "_1_1_2", + "_1_1_20", + "_1_5_8", + "_1_3_4", + "_1_7_8", + "_20", + "_2_1_4", + "_2_1_40", + "_2_1_2", + "_2_1_20", + "_2_3_4", + "_3", + "_30", + "_3_1_20", + "_4" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_ztF5Nwo3ZVISRf", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Default" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8_", + "options": [ + { + "id": "Default", + "name": "3/16\"" + }, + { + "id": "_3_16_", + "name": "1/4\"" + }, + { + "id": "_1_4_", + "name": "5/16\"" + }, + { + "id": "_5_16_", + "name": "3/8\"" + }, + { + "id": "_3_8_", + "name": "7/16\"" + }, + { + "id": "_7_16_", + "name": "1/2\"" + }, + { + "id": "_1_2_", + "name": "9/16\"" + }, + { + "id": "_9_16_", + "name": "5/8\"" + }, + { + "id": "_5_8_", + "name": "3/4\"" + }, + { + "id": "_3_4_", + "name": "7/8\"" + }, + { + "id": "_7_8_", + "name": "1\"" + }, + { + "id": "_1_", + "name": "1-1/8\"" + }, + { + "id": "_1_125_", + "name": "1-1/4\"" + }, + { + "id": "_1_25_", + "name": "1-3/8\"" + }, + { + "id": "_1_375_", + "name": "1-1/2\"" + }, + { + "id": "_1_5_", + "name": "1-5/8\"" + }, + { + "id": "_1_625_", + "name": "1-3/4\"" + }, + { + "id": "_1_75_", + "name": "2\"" + }, + { + "id": "_2_", + "name": "2-1/4\"" + }, + { + "id": "_2_25_", + "name": "2-1/2\"" + }, + { + "id": "_2_5_", + "name": "2-3/4\"" + }, + { + "id": "_3_", + "name": "3\"" + }, + { + "id": "Dummy", + "name": "3-1/4\"" + }, + { + "id": "_3_1_2_", + "name": "3-1/2\"" + }, + { + "id": "_4_", + "name": "4\"" + }, + { + "id": "Untitled", + "name": "Untitled" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_3_16_", + "_1_4_", + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_9_16_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_125_", + "_1_25_", + "_1_375_", + "_1_5_", + "_1_625_", + "_1_75_", + "_2_", + "_2_25_", + "_2_5_", + "_3_", + "Dummy", + "_3_1_2_", + "_4_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_3_16_", + "_1_4_", + "_5_16_", + "_7_16_", + "_9_16_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_125_", + "_1_375_", + "_1_625_", + "_1_75_", + "_2_25_", + "_3_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + }, + { + "id": "List_cpyTEA78YNEBYP", + "name": "Length", + "isCosmetic": false, + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_TmRH7NJBvedWLl", + "value": "Flat" + } + ] + } + ] + }, + "type": "enum", + "default": "_3_8_", + "options": [ + { + "id": "Default", + "name": "1/4\"" + }, + { + "id": "_1_4_", + "name": "3/8\"" + }, + { + "id": "_5_16_", + "name": "7/16\"" + }, + { + "id": "_3_8_", + "name": "1/2\"" + }, + { + "id": "_7_16_", + "name": "9/16\"" + }, + { + "id": "_1_2_", + "name": "5/8\"" + }, + { + "id": "_9_16_", + "name": "3/4\"" + }, + { + "id": "_5_8_", + "name": "7/8\"" + }, + { + "id": "_3_4_", + "name": "1\"" + }, + { + "id": "_7_8_", + "name": "1-1/8\"" + }, + { + "id": "_1_", + "name": "1-1/4\"" + }, + { + "id": "_1_125_", + "name": "1-3/8\"" + }, + { + "id": "_1_25_", + "name": "1-1/2\"" + }, + { + "id": "_1_375_", + "name": "1-5/8\"" + }, + { + "id": "_1_5_", + "name": "1-3/4\"" + }, + { + "id": "_1_625_", + "name": "2\"" + }, + { + "id": "_1_75_", + "name": "2-1/4\"" + }, + { + "id": "_2_", + "name": "2-1/2\"" + }, + { + "id": "_2_25_", + "name": "2-3/4\"" + }, + { + "id": "_2_5_", + "name": "3\"" + }, + { + "id": "_3_", + "name": "3-1/4\"" + }, + { + "id": "_3_5_", + "name": "3-1/2\"" + }, + { + "id": "_4_", + "name": "4\"" + }, + { + "id": "Dummy", + "name": "5\"" + }, + { + "id": "_6_", + "name": "6\"" + }, + { + "id": "Untitled", + "name": "Untitled" + } + ], + "optionConditions": [ + { + "type": "list", + "controlledOptions": [ + "Default", + "_1_4_", + "_5_16_", + "_3_8_", + "_7_16_", + "_1_2_", + "_9_16_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_125_", + "_1_25_", + "_1_375_", + "_1_5_", + "_1_625_", + "_1_75_", + "_2_", + "_2_25_", + "_2_5_", + "_3_", + "_3_5_", + "_4_", + "Dummy", + "_6_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Default" + } + ] + } + ] + } + }, + { + "type": "list", + "controlledOptions": [ + "_1_4_", + "_3_8_", + "_1_2_", + "_9_16_", + "_5_8_", + "_3_4_", + "_7_8_", + "_1_", + "_1_25_", + "_1_5_", + "_1_625_", + "_1_75_", + "_2_", + "_2_25_", + "_2_5_", + "_3_5_", + "_4_" + ], + "condition": { + "type": "logical", + "operation": "AND", + "children": [ + { + "type": "logical", + "operation": "OR", + "children": [ + { + "type": "equal", + "id": "List_5GpG8SQ4jcTSSF", + "value": "Zinc_Plates" + } + ] + } + ] + } + } + ] + } + ], + "records": [ + { + "partNumber": "91255A523", + "name": "1/4-20 x 7/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A523/", + "configurationKey": "" + }, + { + "partNumber": "91251A533", + "name": "1/4-20 x 1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A533/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=Default" + }, + { + "partNumber": "91864A061", + "name": "1/4-20 x 5/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A061/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_16" + }, + { + "partNumber": "91251A535", + "name": "1/4-20 x 3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A535/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_4" + }, + { + "partNumber": "91864A062", + "name": "1/4-20 x 7/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91864A062/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_16" + }, + { + "partNumber": "91251A537", + "name": "1/4-20 x 1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A537/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket" + }, + { + "partNumber": "91251A538", + "name": "1/4-20 x 9/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A538/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_7_16" + }, + { + "partNumber": "91251A539", + "name": "1/4-20 x 5/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A539/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_2" + }, + { + "partNumber": "90044A423", + "name": "1/4-20 x 11/16\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A423/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_9_16" + }, + { + "partNumber": "91251A540", + "name": "1/4-20 x 3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A540/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_8" + }, + { + "partNumber": "91251A541", + "name": "1/4-20 x 7/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A541/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_11_16" + }, + { + "partNumber": "91251A542", + "name": "1/4-20 x 1\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A542/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_4" + }, + { + "partNumber": "91251A560", + "name": "1/4-20 x 1-1/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A560/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_7_8" + }, + { + "partNumber": "91251A544", + "name": "1/4-20 x 1-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A544/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1" + }, + { + "partNumber": "91251A543", + "name": "1/4-20 x 1-3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A543/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_80" + }, + { + "partNumber": "90044A123", + "name": "1/4-20 x 1-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A123/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_4" + }, + { + "partNumber": "91251A527", + "name": "1/4-20 x 1-5/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A527/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_8" + }, + { + "partNumber": "90044A124", + "name": "1/4-20 x 1-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A124/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_2" + }, + { + "partNumber": "91251A548", + "name": "1/4-20 x 1-7/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A548/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_1_20" + }, + { + "partNumber": "90044A125", + "name": "1/4-20 x 2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A125/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_5_8" + }, + { + "partNumber": "90044A126", + "name": "1/4-20 x 2-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A126/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_4" + }, + { + "partNumber": "90044A425", + "name": "1/4-20 x 2-3/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A425/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_3_40" + }, + { + "partNumber": "90044A127", + "name": "1/4-20 x 2-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A127/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_1_7_8" + }, + { + "partNumber": "90044A426", + "name": "1/4-20 x 2-5/8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A426/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2" + }, + { + "partNumber": "90044A128", + "name": "1/4-20 x 2-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A128/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_20" + }, + { + "partNumber": "90044A129", + "name": "1/4-20 x 3\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A129/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_4" + }, + { + "partNumber": "90044A526", + "name": "1/4-20 x 3-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A526/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_40" + }, + { + "partNumber": "90044A316", + "name": "1/4-20 x 3-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A316/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_2" + }, + { + "partNumber": "90044A527", + "name": "1/4-20 x 3-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A527/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_1_20" + }, + { + "partNumber": "90044A131", + "name": "1/4-20 x 4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A131/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_3_4" + }, + { + "partNumber": "91251A559", + "name": "1/4-20 x 4-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A559/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_2_3_40" + }, + { + "partNumber": "91251A089", + "name": "1/4-20 x 4-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A089/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3" + }, + { + "partNumber": "91251A090", + "name": "1/4-20 x 5\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A090/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_30" + }, + { + "partNumber": "91251A293", + "name": "1/4-20 x 5-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A293/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_1_2" + }, + { + "partNumber": "91251A093", + "name": "1/4-20 x 5-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A093/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_1_20" + }, + { + "partNumber": "91251A294", + "name": "1/4-20 x 5-3/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A294/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_3_3_4" + }, + { + "partNumber": "91251A095", + "name": "1/4-20 x 6\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A095/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_4" + }, + { + "partNumber": "91251A562", + "name": "1/4-20 x 6-1/4\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A562/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_4_1_2" + }, + { + "partNumber": "91251A563", + "name": "1/4-20 x 6-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A563/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5" + }, + { + "partNumber": "91251A908", + "name": "1/4-20 x 7\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A908/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_5_1_2" + }, + { + "partNumber": "91251A923", + "name": "1/4-20 x 7-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A923/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_6" + }, + { + "partNumber": "91251A566", + "name": "1/4-20 x 8\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91251A566/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_6_1_2" + }, + { + "partNumber": "90044A299", + "name": "1/4-20 x 8-1/2\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A299/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_7" + }, + { + "partNumber": "90044A311", + "name": "1/4-20 x 9\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A311/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=Dummy" + }, + { + "partNumber": "90044A312", + "name": "1/4-20 x 10\" L SHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90044A312/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_rtxRa7CTeUKBGP=_10_" + }, + { + "partNumber": "90128A239", + "name": "1/4-20 x 1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A239/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=Default" + }, + { + "partNumber": "90128A241", + "name": "1/4-20 x 3/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A241/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_4" + }, + { + "partNumber": "90128A317", + "name": "1/4-20 x 7/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A317/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_5_16" + }, + { + "partNumber": "90128A242", + "name": "1/4-20 x 1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A242/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "90128A318", + "name": "1/4-20 x 9/16\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A318/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_7_16" + }, + { + "partNumber": "90128A243", + "name": "1/4-20 x 5/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A243/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_2" + }, + { + "partNumber": "90128A245", + "name": "1/4-20 x 3/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A245/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_5_8" + }, + { + "partNumber": "90128A246", + "name": "1/4-20 x 7/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A246/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_11_16" + }, + { + "partNumber": "90128A247", + "name": "1/4-20 x 1\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A247/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3_4" + }, + { + "partNumber": "90128A133", + "name": "1/4-20 x 1-1/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A133/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_7_8" + }, + { + "partNumber": "90128A250", + "name": "1/4-20 x 1-1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A250/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1" + }, + { + "partNumber": "90128A301", + "name": "1/4-20 x 1-3/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A301/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_80" + }, + { + "partNumber": "90128A251", + "name": "1/4-20 x 1-1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A251/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_4" + }, + { + "partNumber": "90128A319", + "name": "1/4-20 x 1-5/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A319/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_3_8" + }, + { + "partNumber": "90128A252", + "name": "1/4-20 x 1-3/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A252/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_2" + }, + { + "partNumber": "90044A424", + "name": "1/4-20 x 1-7/8\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90044A424/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_1_20" + }, + { + "partNumber": "90128A253", + "name": "1/4-20 x 2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A253/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_5_8" + }, + { + "partNumber": "90128A254", + "name": "1/4-20 x 2-1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A254/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_3_4" + }, + { + "partNumber": "90128A255", + "name": "1/4-20 x 2-1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A255/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_1_7_8" + }, + { + "partNumber": "90128A259", + "name": "1/4-20 x 2-3/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A259/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_20" + }, + { + "partNumber": "90128A554", + "name": "1/4-20 x 3\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A554/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_2_1_4" + }, + { + "partNumber": "90128A557", + "name": "1/4-20 x 3-1/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A557/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_2_1_40" + }, + { + "partNumber": "90128A560", + "name": "1/4-20 x 3-1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A560/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_2_1_2" + }, + { + "partNumber": "90128A563", + "name": "1/4-20 x 3-3/4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A563/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_2_1_20" + }, + { + "partNumber": "90128A566", + "name": "1/4-20 x 4\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A566/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_2_3_4" + }, + { + "partNumber": "90128A569", + "name": "1/4-20 x 4-1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A569/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3" + }, + { + "partNumber": "90128A572", + "name": "1/4-20 x 5\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A572/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_30" + }, + { + "partNumber": "90128A575", + "name": "1/4-20 x 5-1/2\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A575/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_3_1_20" + }, + { + "partNumber": "90128A577", + "name": "1/4-20 x 6\" L SHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/90128A577/", + "configurationKey": "List_TmRH7NJBvedWLl=Socket;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_rtxRa7CTeUKBGP=_4" + }, + { + "partNumber": "91255A521", + "name": "1/4-20 x 3/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A521/", + "configurationKey": "List_ztF5Nwo3ZVISRf=Default" + }, + { + "partNumber": "91255A533", + "name": "1/4-20 x 1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A533/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_16_" + }, + { + "partNumber": "91255A522", + "name": "1/4-20 x 5/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A522/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "91255A535", + "name": "1/4-20 x 3/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A535/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_5_16_" + }, + { + "partNumber": "91255A537", + "name": "1/4-20 x 1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A537/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_7_16_" + }, + { + "partNumber": "91255A524", + "name": "1/4-20 x 9/16\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A524/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_2_" + }, + { + "partNumber": "91255A539", + "name": "1/4-20 x 5/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A539/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_9_16_" + }, + { + "partNumber": "91255A540", + "name": "1/4-20 x 3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A540/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_5_8_" + }, + { + "partNumber": "91255A541", + "name": "1/4-20 x 7/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A541/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_4_" + }, + { + "partNumber": "91255A542", + "name": "1/4-20 x 1\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A542/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_7_8_" + }, + { + "partNumber": "91255A525", + "name": "1/4-20 x 1-1/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A525/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_" + }, + { + "partNumber": "91255A544", + "name": "1/4-20 x 1-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A544/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_125_" + }, + { + "partNumber": "91255A526", + "name": "1/4-20 x 1-3/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A526/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_25_" + }, + { + "partNumber": "91255A546", + "name": "1/4-20 x 1-1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A546/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_375_" + }, + { + "partNumber": "91255A527", + "name": "1/4-20 x 1-5/8\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A527/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_5_" + }, + { + "partNumber": "91255A548", + "name": "1/4-20 x 1-3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A548/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_625_" + }, + { + "partNumber": "91255A545", + "name": "1/4-20 x 2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A545/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_1_75_" + }, + { + "partNumber": "91255A528", + "name": "1/4-20 x 2-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A528/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_" + }, + { + "partNumber": "91255A547", + "name": "1/4-20 x 2-1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A547/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_25_" + }, + { + "partNumber": "91255A529", + "name": "1/4-20 x 2-3/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A529/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_2_5_" + }, + { + "partNumber": "91255A549", + "name": "1/4-20 x 3\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A549/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_" + }, + { + "partNumber": "91255A819", + "name": "1/4-20 x 3-1/4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A819/", + "configurationKey": "List_ztF5Nwo3ZVISRf=Dummy" + }, + { + "partNumber": "91255A531", + "name": "1/4-20 x 3-1/2\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A531/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_3_1_2_" + }, + { + "partNumber": "91255A532", + "name": "1/4-20 x 4\" L BHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91255A532/", + "configurationKey": "List_ztF5Nwo3ZVISRf=_4_" + }, + { + "partNumber": "91306A371", + "name": "1/4-20 x 1/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A371/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_3_16_" + }, + { + "partNumber": "91306A278", + "name": "1/4-20 x 5/16\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A278/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_4_" + }, + { + "partNumber": "91306A373", + "name": "1/4-20 x 3/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A373/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_5_16_" + }, + { + "partNumber": "91306A375", + "name": "1/4-20 x 1/2\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A375/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_7_16_" + }, + { + "partNumber": "91306A377", + "name": "1/4-20 x 5/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A377/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_9_16_" + }, + { + "partNumber": "91306A379", + "name": "1/4-20 x 3/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A379/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_5_8_" + }, + { + "partNumber": "91306A279", + "name": "1/4-20 x 7/8\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A279/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_3_4_" + }, + { + "partNumber": "91306A383", + "name": "1/4-20 x 1\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A383/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_7_8_" + }, + { + "partNumber": "91306A280", + "name": "1/4-20 x 1-1/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A280/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_125_" + }, + { + "partNumber": "91306A384", + "name": "1/4-20 x 1-1/2\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A384/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_375_" + }, + { + "partNumber": "91306A281", + "name": "1/4-20 x 1-3/4\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A281/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_625_" + }, + { + "partNumber": "91306A282", + "name": "1/4-20 x 2\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A282/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_1_75_" + }, + { + "partNumber": "91306A716", + "name": "1/4-20 x 2-1/2\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A716/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_2_25_" + }, + { + "partNumber": "91306A717", + "name": "1/4-20 x 3\" L BHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91306A717/", + "configurationKey": "List_5GpG8SQ4jcTSSF=Zinc_Plates;List_ztF5Nwo3ZVISRf=_3_" + }, + { + "partNumber": "null", + "name": "1/4-20 x 1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=Default" + }, + { + "partNumber": "91263A551", + "name": "1/4-20 x 3/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A551/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_4_" + }, + { + "partNumber": "null", + "name": "1/4-20 x 7/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_5_16_" + }, + { + "partNumber": "91263A553", + "name": "1/4-20 x 1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A553/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat" + }, + { + "partNumber": "null", + "name": "1/4-20 x 9/16\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_7_16_" + }, + { + "partNumber": "91263A556", + "name": "1/4-20 x 5/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A556/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_2_" + }, + { + "partNumber": "91263A559", + "name": "1/4-20 x 3/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A559/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_9_16_" + }, + { + "partNumber": "91263A560", + "name": "1/4-20 x 7/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A560/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_5_8_" + }, + { + "partNumber": "91263A562", + "name": "1/4-20 x 1\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A562/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_3_4_" + }, + { + "partNumber": "91263A166", + "name": "1/4-20 x 1-1/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A166/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_7_8_" + }, + { + "partNumber": "91263A563", + "name": "1/4-20 x 1-1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A563/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_" + }, + { + "partNumber": "null", + "name": "1/4-20 x 1-3/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_125_" + }, + { + "partNumber": "91263A564", + "name": "1/4-20 x 1-1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A564/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_25_" + }, + { + "partNumber": "null", + "name": "1/4-20 x 1-5/8\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_375_" + }, + { + "partNumber": "91263A565", + "name": "1/4-20 x 1-3/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A565/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_5_" + }, + { + "partNumber": "91263A566", + "name": "1/4-20 x 2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A566/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_625_" + }, + { + "partNumber": "91263A567", + "name": "1/4-20 x 2-1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A567/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_1_75_" + }, + { + "partNumber": "91263A568", + "name": "1/4-20 x 2-1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A568/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_2_" + }, + { + "partNumber": "91263A569", + "name": "1/4-20 x 2-3/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A569/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_2_25_" + }, + { + "partNumber": "91263A570", + "name": "1/4-20 x 3\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A570/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_2_5_" + }, + { + "partNumber": "null", + "name": "1/4-20 x 3-1/4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_3_" + }, + { + "partNumber": "91263A169", + "name": "1/4-20 x 3-1/2\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A169/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_3_5_" + }, + { + "partNumber": "91263A172", + "name": "1/4-20 x 4\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/91263A172/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_4_" + }, + { + "partNumber": "null", + "name": "1/4-20 x 5\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=Dummy" + }, + { + "partNumber": "null", + "name": "1/4-20 x 6\" L FHCS (Steel, Black Oxide)", + "url": "https://www.mcmaster.com/null/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_cpyTEA78YNEBYP=_6_" + }, + { + "partNumber": "91263A551", + "name": "1/4-20 x 3/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A551/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_4_" + }, + { + "partNumber": "91263A553", + "name": "1/4-20 x 1/2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A553/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates" + }, + { + "partNumber": "91263A556", + "name": "1/4-20 x 5/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A556/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_2_" + }, + { + "partNumber": "91263A559", + "name": "1/4-20 x 3/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A559/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_9_16_" + }, + { + "partNumber": "91263A560", + "name": "1/4-20 x 7/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A560/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_5_8_" + }, + { + "partNumber": "91263A562", + "name": "1/4-20 x 1\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A562/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_3_4_" + }, + { + "partNumber": "91263A166", + "name": "1/4-20 x 1-1/8\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A166/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_7_8_" + }, + { + "partNumber": "91263A563", + "name": "1/4-20 x 1-1/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A563/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_" + }, + { + "partNumber": "91263A564", + "name": "1/4-20 x 1-1/2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A564/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_25_" + }, + { + "partNumber": "91263A565", + "name": "1/4-20 x 1-3/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A565/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_5_" + }, + { + "partNumber": "91263A566", + "name": "1/4-20 x 2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A566/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_625_" + }, + { + "partNumber": "91263A567", + "name": "1/4-20 x 2-1/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A567/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_1_75_" + }, + { + "partNumber": "91263A568", + "name": "1/4-20 x 2-1/2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A568/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_2_" + }, + { + "partNumber": "91263A569", + "name": "1/4-20 x 2-3/4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A569/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_2_25_" + }, + { + "partNumber": "91263A570", + "name": "1/4-20 x 3\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A570/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_2_5_" + }, + { + "partNumber": "91263A169", + "name": "1/4-20 x 3-1/2\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A169/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_3_5_" + }, + { + "partNumber": "91263A172", + "name": "1/4-20 x 4\" L FHCS (Steel, Zinc Plated)", + "url": "https://www.mcmaster.com/91263A172/", + "configurationKey": "List_TmRH7NJBvedWLl=Flat;List_5GpG8SQ4jcTSSF=Zinc_Plates;List_cpyTEA78YNEBYP=_4_" + } + ] + }, + { + "insertableId": "1449b72d-ab89-40c1-a12f-b58bb2b036e9", + "name": "1/4-20 Nut", + "vendors": [], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "a8b1c774342a0aca4c69dcf9", + "parameters": [ + { + "id": "List_W8AN11pwjxxWqR", + "name": "Type", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "Nylock" + }, + { + "id": "Thin_Nylock", + "name": "Thin Nylock" + }, + { + "id": "Hex_Nut", + "name": "Hex" + }, + { + "id": "Square_Nut", + "name": "Square" + } + ], + "optionConditions": [] + } + ], + "records": [ + { + "partNumber": "90640A129", + "name": "1/4-20 Nylon-Insert Locknut", + "url": "https://www.mcmaster.com/90640A129/", + "configurationKey": "" + }, + { + "partNumber": "90566A029", + "name": "1/4-20 Thin Nylon-Insert Locknut", + "url": "https://www.mcmaster.com/90566A029/", + "configurationKey": "List_W8AN11pwjxxWqR=Thin_Nylock" + }, + { + "partNumber": "90494A029", + "name": "1/4-20 Hex Nut", + "url": "https://www.mcmaster.com/90494A029/", + "configurationKey": "List_W8AN11pwjxxWqR=Hex_Nut" + }, + { + "partNumber": "90043A029", + "name": "1/4-20 Square Nut", + "url": "https://www.mcmaster.com/90043A029/", + "configurationKey": "List_W8AN11pwjxxWqR=Square_Nut" + } + ] + }, + { + "insertableId": "27f4d911-9105-4866-95c3-890eef5e6279", + "name": "Metal Washer (AM)", + "vendors": [ + "AM" + ], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "c0c8d0ffeb11aeb3fec7278e", + "parameters": [ + { + "id": "List_7aFqcyT34wHgLY", + "name": "Size", + "isCosmetic": false, + "type": "enum", + "default": "_6_x", + "options": [ + { + "id": "_6_x", + "name": "#6 x 0.625\" OD x 0.031\" WD" + }, + { + "id": "_10_x__75__OD_x", + "name": "#10 x .75\" OD x 0.062\" WD" + }, + { + "id": "_10_x_1__OD_x", + "name": "#10 x 1\" OD x 0.062\" WD" + }, + { + "id": "_0_252__x", + "name": "0.252\" x 3\" OD x .0.6\" WD" + }, + { + "id": "_0_281__x", + "name": "0.281\" x 0.625\" OD x 0.063\" WD" + }, + { + "id": "_02_81", + "name": "0.281\" x 1\" OD x 0.062\" WD" + }, + { + "id": "_0_291_", + "name": "0.291\" x 0.55\" OD x 0.063\" WD" + }, + { + "id": "_3_75_", + "name": "3/8\" x 0.625\" OD x 0.010" + }, + { + "id": "Default", + "name": "0.406\" x 0.812\" OD x 0.06\" WD" + }, + { + "id": "_531__x", + "name": "0.531\" x 1.062\" OD x 0.095\" WD" + }, + { + "id": "_5_8_", + "name": "5/8\" x 7/8\" OD x 0.016\" WD" + }, + { + "id": "_1", + "name": "1-1/8\" x 1.625\" OD x 0.031\" WD" + } + ], + "optionConditions": [] + } + ], + "records": [ + { + "partNumber": "am-1658", + "name": "#6 Washer (0.625\" OD, 0.031\" WD, Stainless Steel)", + "url": "https://andymark.com/products/6-x-0-625-in-od-fender-washer", + "configurationKey": "" + }, + { + "partNumber": "am-1523", + "name": "#10 Washer (0.75\" OD, 0.062\" WD, Steel, Zink Finish)", + "url": "https://andymark.com/products/10-x-0-75-in-fender-washer", + "configurationKey": "List_7aFqcyT34wHgLY=_10_x__75__OD_x" + }, + { + "partNumber": "am-1575", + "name": "#10 Washer (1\" OD, 0.062\" WD, Steel, Zink Finish)", + "url": "https://andymark.com/products/10-x-1-in-fender-washer", + "configurationKey": "List_7aFqcyT34wHgLY=_10_x_1__OD_x" + }, + { + "partNumber": "am-1628", + "name": "0.252\" Washer (3\" OD, 0.06\" WD, Steel, Zink Finish)", + "url": "https://andymark.com/products/1-4-in-id-3-in-od-fender-washer", + "configurationKey": "List_7aFqcyT34wHgLY=_0_252__x" + }, + { + "partNumber": "am-1027", + "name": "0.625\" Washer (0.625\" OD, 0.063\" WD, Steel, Zink Finish)", + "url": "https://andymark.com/products/1-4-in-flat-washer", + "configurationKey": "List_7aFqcyT34wHgLY=_0_281__x" + }, + { + "partNumber": "am-1421", + "name": "0.281\" Washer (1\" OD, 0.062\" WD, Steel, Zink Finish)", + "url": "https://andymark.com/products/1-4-in-x-1-in-fender-washer", + "configurationKey": "List_7aFqcyT34wHgLY=_02_81" + }, + { + "partNumber": "am-1666", + "name": "3/8\" Washer (0.625\" OD, 0.01\" WD, Stainless Steel,)", + "url": "https://andymark.com/products/0-01-in-thick-3-8-in-id-stainless-steel-ring-shim", + "configurationKey": "List_7aFqcyT34wHgLY=_3_75_" + }, + { + "partNumber": "am-1393", + "name": "0.406\" Washer (0.812\" OD, 0.06\" WD, Steel, Zink Finish)", + "url": "https://andymark.com/products/3-8-in-flat-washer", + "configurationKey": "List_7aFqcyT34wHgLY=Default" + }, + { + "partNumber": "am-1748", + "name": "0.531\" Washer (1.062\" OD, 0.095\" WD, Steel, Zink Finish)", + "url": "https://andymark.com/products/1-2-in-flat-washer", + "configurationKey": "List_7aFqcyT34wHgLY=_531__x" + }, + { + "partNumber": "am-1444", + "name": "5/8\" Washer (7/8\" OD, 0.016\" WD, Stainless Steel)", + "url": "https://andymark.com/products/1-2-in-hex-shim-washer", + "configurationKey": "List_7aFqcyT34wHgLY=_5_8_" + }, + { + "partNumber": "am-1594", + "name": "1-1/8\" Washer (1.625\" OD, 0.031\" WD, Steel, )", + "url": "https://andymark.com/products/0-031-in-thick-1-125-in-id-steel-bearing-washer", + "configurationKey": "List_7aFqcyT34wHgLY=_1" + } + ] + }, + { + "insertableId": "9767e091-5922-49ab-a1af-176ba2465595", + "name": "Metal Washer (MCM)", + "vendors": [ + "MCM" + ], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "af0a0d10cfbf10133dbe5916", + "parameters": [ + { + "id": "List_XnOvxjBPPDjcCE", + "name": "Configuration", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "_4_x_5_16", + "name": "#4 x 5/16\" OD x .03\" Thick (Stainless Steel)" + }, + { + "id": "Copy_of__4_x_5_16__OD_x__03__Thick__Stainless_Steel_", + "name": "#4 x 5/16\" OD x .03\" Thick (Black-Oxide Stainless Steel)" + }, + { + "id": "_6_x_5_16__OD_x__03__Thick__Stainless_Steel_", + "name": "#6 x 5/16\" OD x .03\" Thick (Stainless Steel)" + }, + { + "id": "Copy_of__6_x_5_16__OD_x__03__Thick__Stainless_Steel_", + "name": "#6 x 3/8\" OD x .03\" Thick (Black-Oxide Stainless Steel)" + }, + { + "id": "_8_x_3_8__OD_x__03__Thick__Stainless_Steel_", + "name": "#8 x 3/8\" OD x .03\" Thick (Stainless Steel)" + }, + { + "id": "_8_x_3_8__OD_x__03__Thick__Stainless_Steel_0", + "name": "#8 x 3/8\" OD x .03\" Thick (Black-Oxide Stainless Steel)" + }, + { + "id": "Default", + "name": "#10 x 7/16\" OD x .03\" Thick (Stainless Steel)" + }, + { + "id": "_10_x_5_8__OD_x__031__WD", + "name": "#10 x 7/16\" OD x .03\" Thick (Black-Oxide Stainless Steel)" + }, + { + "id": "Copy_of__10_x_7_16__OD_x__031__Thick__Black_Oxide_Stainless_Steel_", + "name": "#10 x 1/2\" OD x .04\" Thick (Black-Oxide Stainless Steel)" + }, + { + "id": "_1_4__ID_x_3_8__OD_x__012__WD", + "name": "1/4\" x 5/8\" OD x .05\" Thick (Stainless Steel)" + }, + { + "id": "Copy_of_1_4__x_5_8__OD_x__05__Thick", + "name": "1/4\" x 5/8\" OD x .05\" Thick (Black-Oxide Stainless Steel)" + } + ], + "optionConditions": [] + } + ], + "records": [ + { + "partNumber": "92141A011", + "name": "#10 Washer (7/16\" OD, 0.03\" WD, Stainless Steel)", + "url": "https://www.mcmaster.com/92141A011/", + "configurationKey": "" + }, + { + "partNumber": "92141A005", + "name": "#4 Washer (5/16\" OD, 0.03\" WD, Stainless Steel)", + "url": "https://www.mcmaster.com/92141A005/", + "configurationKey": "List_XnOvxjBPPDjcCE=_4_x_5_16" + }, + { + "partNumber": "96765A110", + "name": "#4 Washer (5/16\" OD, 0.03\" WD, Stainless Steel, Black Oxide)", + "url": "https://www.mcmaster.com/96765A110/", + "configurationKey": "List_XnOvxjBPPDjcCE=Copy_of__4_x_5_16__OD_x__03__Thick__Stainless_Steel_" + }, + { + "partNumber": "92141A008", + "name": "#6 Washer (5/16\" OD, 0.03\" WD, Stainless Steel)", + "url": "https://www.mcmaster.com/92141A008/", + "configurationKey": "List_XnOvxjBPPDjcCE=_6_x_5_16__OD_x__03__Thick__Stainless_Steel_" + }, + { + "partNumber": "96765A115", + "name": "#6 Washer (3/8\" OD, 0.03\" WD, Stainless Steel, Black Oxide)", + "url": "https://www.mcmaster.com/96765A115/", + "configurationKey": "List_XnOvxjBPPDjcCE=Copy_of__6_x_5_16__OD_x__03__Thick__Stainless_Steel_" + }, + { + "partNumber": "92141A009", + "name": "#8 Washer (3/8\" OD, 0.03\" WD, Stainless Steel)", + "url": "https://www.mcmaster.com/92141A009/", + "configurationKey": "List_XnOvxjBPPDjcCE=_8_x_3_8__OD_x__03__Thick__Stainless_Steel_" + }, + { + "partNumber": "96765A120", + "name": "#8 Washer (3/8\" OD, 0.03\" WD, Stainless Steel, Black Oxide)", + "url": "https://www.mcmaster.com/96765A120/", + "configurationKey": "List_XnOvxjBPPDjcCE=_8_x_3_8__OD_x__03__Thick__Stainless_Steel_0" + }, + { + "partNumber": "96765A125", + "name": "#10 Washer (7/16\" OD, 0.03\" WD, Stainless Steel, Black Oxide)", + "url": "https://www.mcmaster.com/96765A125/", + "configurationKey": "List_XnOvxjBPPDjcCE=_10_x_5_8__OD_x__031__WD" + }, + { + "partNumber": "90377A123", + "name": "#10 Washer (1/2\" OD, 0.04\" WD, Stainless Steel, Black Oxide)", + "url": "https://www.mcmaster.com/90377A123/", + "configurationKey": "List_XnOvxjBPPDjcCE=Copy_of__10_x_7_16__OD_x__031__Thick__Black_Oxide_Stainless_Steel_" + }, + { + "partNumber": "92141A029", + "name": "1/4\" ID Washer (5/8\" OD, 0.05\" WD, Stainless Steel)", + "url": "https://www.mcmaster.com/92141A029/", + "configurationKey": "List_XnOvxjBPPDjcCE=_1_4__ID_x_3_8__OD_x__012__WD" + }, + { + "partNumber": "96765A140", + "name": "1/4\" ID Washer (5/8\" OD, 0.05\" WD, Stainless Steel, Black Oxide)", + "url": "https://www.mcmaster.com/96765A140/", + "configurationKey": "List_XnOvxjBPPDjcCE=Copy_of_1_4__x_5_8__OD_x__05__Thick" + } + ] + }, + { + "insertableId": "fcf161cd-638a-4681-b3b2-bf29f7fae35d", + "name": "Metal Washer (WCP)", + "vendors": [ + "WCP" + ], + "documentId": "77461d97ef7c9d816f0c7351", + "versionId": "ad6ba2dee1a5a7db30119aef", + "elementId": "1853285eeec0ef497d8289dc", + "parameters": [ + { + "id": "List_XnOvxjBPPDjcCE", + "name": "Configuration", + "isCosmetic": false, + "type": "enum", + "default": "Default", + "options": [ + { + "id": "Default", + "name": "#10 x 3/8\" OD x .012\" Thick" + }, + { + "id": "_10_x_3_8__OD_x__031__WD", + "name": "#10 x 3/8\" OD x .031\" Thick" + }, + { + "id": "_10_x_5_8__OD_x__031__WD", + "name": "#10 x 5/8\" OD x .031\" Thick" + }, + { + "id": "_1_4__ID_x_3_8__OD_x__012__WD", + "name": "1/4\" x 3/8\" OD x .012\" Thick" + }, + { + "id": "_1_4__ID_x_3_8__OD_x__031__WD", + "name": "1/4\" x 3/8\" OD x .031\" Thick" + }, + { + "id": "_1_125__ID_x_1_25__OD_x__031__Thick", + "name": "1.125\" x 1.25\" OD x .031\" Thick" + } + ], + "optionConditions": [] + } + ], + "records": [ + { + "partNumber": "WCP-0038", + "name": "#10 Washer (3/8\" OD, 0.012\" WD, Steel, Black Zinc)", + "url": "https://wcproducts.com/products/wcp-0038", + "configurationKey": "" + }, + { + "partNumber": "WCP-0197", + "name": "#10 Washer (3/8\" OD, 0.031\" WD, Steel, Black Zinc)", + "url": "https://wcproducts.com/products/wcp-0197", + "configurationKey": "List_XnOvxjBPPDjcCE=_10_x_3_8__OD_x__031__WD" + }, + { + "partNumber": "WCP-0523", + "name": "#10 Washer (5/8\" OD, 0.031\" WD, Steel, Black Zinc)", + "url": "https://wcproducts.com/products/wcp-0523", + "configurationKey": "List_XnOvxjBPPDjcCE=_10_x_5_8__OD_x__031__WD" + }, + { + "partNumber": "WCP-0039", + "name": "1/4\" ID Washer (3/8\" OD, 0.012\" WD, Steel, Black Zinc)", + "url": "https://wcproducts.com/products/wcp-0039", + "configurationKey": "List_XnOvxjBPPDjcCE=_1_4__ID_x_3_8__OD_x__012__WD" + }, + { + "partNumber": "WCP-0198", + "name": "1/4\" ID Washer (3/8\" OD, 0.031\" WD, Steel, Black Zinc)", + "url": "https://wcproducts.com/products/wcp-0198", + "configurationKey": "List_XnOvxjBPPDjcCE=_1_4__ID_x_3_8__OD_x__031__WD" + }, + { + "partNumber": "WCP-0570", + "name": "1.125\" ID Washer (1.25\" OD, 0.031\" WD, Steel, Black Zinc)", + "url": "https://wcproducts.com/products/wcp-0570", + "configurationKey": "List_XnOvxjBPPDjcCE=_1_125__ID_x_1_25__OD_x__031__Thick" + } + ] + } + ] +} diff --git a/featurescripts/fasteners/vendor/mcmaster-metric.json b/featurescripts/fasteners/vendor/mcmaster-metric.json new file mode 100644 index 00000000..7b3d34ef --- /dev/null +++ b/featurescripts/fasteners/vendor/mcmaster-metric.json @@ -0,0 +1,4771 @@ +{ + "source": "McMaster-Carr's metric tables, transcribed from its pages on 2026-11-08; prices are a pack's, in US dollars", + "screws": { + "SOCKET": { + "M3": { + "head": { + "diameter": 5.5, + "height": 3, + "drive": 2.5 + }, + "ZINC_PLATED": { + "material": "Zinc-plated alloy steel, class 12.9", + "lengths": [ + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90128A187", + "price": 9.13 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90128A646", + "price": 127.82 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "95263A134", + "price": 8.55 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "90128A359", + "price": 119.7 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "95263A146", + "price": 8.93 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "90128A366", + "price": 125.02 + } + ] + }, + { + "length": 15, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "90128A331", + "price": 14.62 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "95263A158", + "price": 5.31 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "90128A368", + "price": 74.34 + } + ] + }, + { + "length": 20, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90128A204", + "price": 12.29 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90128A648", + "price": 172.06 + } + ] + }, + { + "length": 25, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90128A205", + "price": 17.03 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90128A649", + "price": 238.42 + } + ] + } + ] + }, + "BLACK": { + "material": "Black-oxide alloy steel, class 12.9", + "lengths": [ + { + "length": 4, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A109", + "price": 13.8 + } + ] + }, + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A110", + "price": 11.91 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A111", + "price": 11.59 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91290A400", + "price": 6.48 + }, + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A113", + "price": 13.28 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "91290A700", + "price": 90.72 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A115", + "price": 13.23 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91290A500", + "price": 5.87 + }, + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A117", + "price": 12.03 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "91290A701", + "price": 82.18 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91290A600", + "price": 7.5 + }, + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A119", + "price": 15.37 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "91290A702", + "price": 105.0 + } + ] + }, + { + "length": 15, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91290A572", + "price": 9.5 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A120", + "price": 12.22 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A121", + "price": 15.26 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A123", + "price": 14.47 + } + ] + }, + { + "length": 22, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A124", + "price": 13.29 + } + ] + }, + { + "length": 25, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A125", + "price": 17.78 + } + ] + }, + { + "length": 30, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "91290A171", + "price": 5.74 + } + ] + }, + { + "length": 30, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 50, + "partNumber": "91290A130", + "price": 14.01 + } + ] + }, + { + "length": 35, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 50, + "partNumber": "91290A135", + "price": 13.74 + } + ] + }, + { + "length": 40, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 25, + "partNumber": "91290A136", + "price": 4.86 + } + ] + }, + { + "length": 45, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91290A079", + "price": 3.96 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91290A703", + "price": 55.44 + } + ] + }, + { + "length": 50, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 25, + "partNumber": "91290A137", + "price": 6.69 + } + ] + }, + { + "length": 55, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 1, + "partNumber": "91290A573", + "price": 3.3 + } + ] + }, + { + "length": 60, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91290A181", + "price": 11.28 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91290A704", + "price": 157.92 + } + ] + }, + { + "length": 70, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 1, + "partNumber": "91290A297", + "price": 4.64 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 50, + "partNumber": "91290A705", + "price": 162.4 + } + ] + } + ] + }, + "STAINLESS": { + "material": "18-8 stainless steel", + "lengths": [ + { + "length": 3, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "90751A173", + "price": 6.31 + }, + { + "pack": "SMALL_US", + "quantity": 25, + "partNumber": "91292A021", + "price": 6.63 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "90751A205", + "price": 88.34 + } + ] + }, + { + "length": 4, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91292A109", + "price": 4.2 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "90751A206", + "price": 58.8 + } + ] + }, + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A110", + "price": 7.11 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A207", + "price": 99.54 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A111", + "price": 11.58 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A208", + "price": 162.12 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A112", + "price": 6.46 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A209", + "price": 90.44 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A113", + "price": 7.11 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A211", + "price": 99.54 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A114", + "price": 7.11 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A212", + "price": 99.54 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A027", + "price": 9.04 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A213", + "price": 126.56 + } + ] + }, + { + "length": 15, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 5, + "partNumber": "91292A346", + "price": 15.04 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A115", + "price": 8.44 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A214", + "price": 118.16 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A029", + "price": 9.04 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A215", + "price": 126.56 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A123", + "price": 9.69 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A216", + "price": 135.66 + } + ] + }, + { + "length": 22, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91292A801", + "price": 6.46 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "91292A057", + "price": 90.44 + } + ] + }, + { + "length": 25, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A020", + "price": 10.34 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "91292A059", + "price": 144.76 + } + ] + }, + { + "length": 30, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91292A022", + "price": 6.14 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "91292A061", + "price": 85.96 + } + ] + }, + { + "length": 35, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A033", + "price": 5.39 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91292A062", + "price": 75.46 + } + ] + }, + { + "length": 40, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A024", + "price": 4.68 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91292A063", + "price": 65.52 + } + ] + }, + { + "length": 45, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91292A025", + "price": 14.25 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "91292A064", + "price": 185.25 + } + ] + }, + { + "length": 50, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A026", + "price": 5.65 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91292A065", + "price": 79.1 + } + ] + }, + { + "length": 55, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A314", + "price": 10.1 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91292A066", + "price": 141.4 + } + ] + }, + { + "length": 60, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91292A267", + "price": 19.01 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "91292A067", + "price": 247.13 + } + ] + }, + { + "length": 65, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A315", + "price": 14.62 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91292A068", + "price": 204.68 + } + ] + }, + { + "length": 70, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A316", + "price": 15.56 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91292A069", + "price": 217.84 + } + ] + } + ] + } + }, + "M4": { + "head": { + "diameter": 7, + "height": 4, + "drive": 3 + }, + "ZINC_PLATED": { + "material": "Zinc-plated alloy steel, class 12.9", + "lengths": [ + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90128A207", + "price": 11.15 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90128A651", + "price": 156.1 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90128A208", + "price": 11.33 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90128A653", + "price": 158.62 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90128A211", + "price": 11.24 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90128A654", + "price": 157.36 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90128A212", + "price": 10.31 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90128A655", + "price": 144.34 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90128A214", + "price": 10.36 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90128A656", + "price": 145.04 + } + ] + }, + { + "length": 15, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "90128A332", + "price": 10.38 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90128A215", + "price": 10.85 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90128A658", + "price": 151.9 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90128A216", + "price": 12.21 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90128A659", + "price": 170.94 + } + ] + }, + { + "length": 22, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "90128A333", + "price": 11.11 + } + ] + }, + { + "length": 25, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90128A217", + "price": 14.0 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90128A661", + "price": 196.0 + } + ] + }, + { + "length": 30, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90128A219", + "price": 15.35 + } + ] + } + ] + }, + "BLACK": { + "material": "Black-oxide alloy steel, class 12.9", + "lengths": [ + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A138", + "price": 19.63 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A139", + "price": 11.71 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A140", + "price": 13.24 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A144", + "price": 13.55 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A148", + "price": 12.3 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A150", + "price": 14.23 + } + ] + }, + { + "length": 15, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 5, + "partNumber": "91290A306", + "price": 12.6 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A154", + "price": 13.72 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A164", + "price": 16.36 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "91290A168", + "price": 14.47 + } + ] + }, + { + "length": 22, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91290A631", + "price": 4.27 + }, + { + "pack": "SMALL_US", + "quantity": 50, + "partNumber": "91290A170", + "price": 15.37 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "91290A707", + "price": 59.78 + } + ] + }, + { + "length": 25, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91290A637", + "price": 9.64 + }, + { + "pack": "SMALL_US", + "quantity": 50, + "partNumber": "91290A176", + "price": 10.6 + } + ] + }, + { + "length": 30, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 5, + "partNumber": "91290A172", + "price": 2.97 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 100, + "partNumber": "91290A708", + "price": 41.58 + } + ] + }, + { + "length": 30, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91290A639", + "price": 10.0 + }, + { + "pack": "SMALL_US", + "quantity": 50, + "partNumber": "91290A180", + "price": 10.5 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "91290A709", + "price": 140.0 + } + ] + }, + { + "length": 35, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 5, + "partNumber": "91290A173", + "price": 3.1 + } + ] + }, + { + "length": 35, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91290A641", + "price": 5.94 + }, + { + "pack": "SMALL_US", + "quantity": 50, + "partNumber": "91290A182", + "price": 12.18 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "91290A713", + "price": 83.16 + } + ] + }, + { + "length": 40, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 5, + "partNumber": "91290A174", + "price": 2.4 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 100, + "partNumber": "91290A715", + "price": 33.6 + } + ] + }, + { + "length": 40, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 50, + "partNumber": "91290A184", + "price": 12.69 + } + ] + }, + { + "length": 45, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 1, + "partNumber": "91290A175", + "price": 2.14 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 100, + "partNumber": "91290A716", + "price": 149.8 + } + ] + }, + { + "length": 45, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 50, + "partNumber": "91290A145", + "price": 15.22 + } + ] + }, + { + "length": 50, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 1, + "partNumber": "91290A193", + "price": 2.14 + } + ] + }, + { + "length": 50, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 50, + "partNumber": "91290A186", + "price": 15.85 + } + ] + }, + { + "length": 55, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91290A645", + "price": 10.61 + }, + { + "pack": "SMALL_US", + "quantity": 25, + "partNumber": "91290A187", + "price": 11.67 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91290A717", + "price": 77.7 + } + ] + }, + { + "length": 60, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91290A647", + "price": 5.55 + }, + { + "pack": "SMALL_US", + "quantity": 25, + "partNumber": "91290A188", + "price": 14.99 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91290A718", + "price": 143.64 + } + ] + }, + { + "length": 65, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91290A083", + "price": 10.26 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91290A719", + "price": 174.3 + } + ] + }, + { + "length": 70, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91290A651", + "price": 12.45 + }, + { + "pack": "SMALL_US", + "quantity": 10, + "partNumber": "91290A190", + "price": 9.96 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91290A721", + "price": 163.38 + } + ] + }, + { + "length": 75, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91290A085", + "price": 11.67 + } + ] + }, + { + "length": 80, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91290A653", + "price": 11.64 + }, + { + "pack": "SMALL_US", + "quantity": 10, + "partNumber": "91290A192", + "price": 9.31 + } + ] + }, + { + "length": 85, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "91290A574", + "price": 17.96 + } + ] + }, + { + "length": 90, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "91290A183", + "price": 9.54 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 200, + "partNumber": "91290A723", + "price": 133.56 + } + ] + }, + { + "length": 100, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "91290A185", + "price": 11.23 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 200, + "partNumber": "91290A724", + "price": 157.22 + } + ] + }, + { + "length": 110, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 1, + "partNumber": "91290A575", + "price": 8.0 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 50, + "partNumber": "91290A728", + "price": 280.0 + } + ] + } + ] + }, + "STAINLESS": { + "material": "18-8 stainless steel", + "lengths": [ + { + "length": 4, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_US", + "quantity": 10, + "partNumber": "91292A023", + "price": 2.98 + } + ] + }, + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A105", + "price": 9.69 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A217", + "price": 135.66 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A107", + "price": 9.09 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A218", + "price": 127.26 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A108", + "price": 9.69 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A219", + "price": 135.66 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A116", + "price": 10.34 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A221", + "price": 144.76 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A117", + "price": 10.39 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A222", + "price": 145.46 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A038", + "price": 13.57 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A223", + "price": 189.98 + } + ] + }, + { + "length": 15, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 5, + "partNumber": "90751A177", + "price": 4.46 + }, + { + "pack": "SMALL_US", + "quantity": 5, + "partNumber": "91292A354", + "price": 22.3 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 200, + "partNumber": "90751A224", + "price": 124.88 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A118", + "price": 11.63 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A225", + "price": 162.82 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A043", + "price": 14.21 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A226", + "price": 198.94 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A121", + "price": 12.98 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A227", + "price": 181.72 + } + ] + }, + { + "length": 22, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91292A806", + "price": 8.57 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "90751A228", + "price": 119.98 + } + ] + }, + { + "length": 25, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A122", + "price": 14.28 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "90751A229", + "price": 199.92 + } + ] + }, + { + "length": 30, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91292A130", + "price": 16.15 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "91292A071", + "price": 226.1 + } + ] + }, + { + "length": 35, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91292A131", + "price": 10.66 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "91292A072", + "price": 149.24 + } + ] + }, + { + "length": 40, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91292A132", + "price": 10.0 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "91292A074", + "price": 140.0 + } + ] + }, + { + "length": 45, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91292A133", + "price": 13.14 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "91292A075", + "price": 183.96 + } + ] + }, + { + "length": 50, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A140", + "price": 8.56 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91292A076", + "price": 119.84 + } + ] + }, + { + "length": 55, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A268", + "price": 11.46 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91292A077", + "price": 160.44 + } + ] + }, + { + "length": 60, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A048", + "price": 9.85 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91292A078", + "price": 137.9 + } + ] + }, + { + "length": 65, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A317", + "price": 13.03 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91292A079", + "price": 182.42 + } + ] + }, + { + "length": 70, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A269", + "price": 14.64 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91292A081", + "price": 204.96 + } + ] + }, + { + "length": 75, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A318", + "price": 15.41 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "91292A083", + "price": 215.74 + } + ] + }, + { + "length": 80, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A271", + "price": 19.14 + } + ] + }, + { + "length": 85, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A838", + "price": 12.32 + } + ] + }, + { + "length": 90, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91292A319", + "price": 20.87 + } + ] + }, + { + "length": 100, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 1, + "partNumber": "91292A039", + "price": 6.4 + } + ] + } + ] + } + } + }, + "BUTTON": { + "M3": { + "head": { + "diameter": 5.7, + "height": 1.65, + "drive": 2 + }, + "ZINC_PLATED": { + "material": "Zinc-plated alloy steel", + "lengths": [ + { + "length": 4, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91306A721", + "price": 9.64 + } + ] + }, + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91306A655", + "price": 11.72 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91306A656", + "price": 10.97 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91306A657", + "price": 10.0 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91306A722", + "price": 15.35 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91306A658", + "price": 14.4 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91306A723", + "price": 11.29 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91306A724", + "price": 13.87 + } + ] + }, + { + "length": 30, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91306A725", + "price": 8.58 + } + ] + } + ] + }, + "BLACK": { + "material": "Black-oxide alloy steel", + "lengths": [ + { + "length": 4, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91239A109", + "price": 7.0 + } + ] + }, + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91239A110", + "price": 16.01 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91239A117", + "price": 12.26 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91239A118", + "price": 18.39 + } + ] + }, + { + "length": 15, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91239A811", + "price": 6.3 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91239A120", + "price": 14.07 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91239A121", + "price": 9.12 + } + ] + }, + { + "length": 25, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91239A126", + "price": 10.34 + } + ] + }, + { + "length": 30, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91239A127", + "price": 17.29 + } + ] + }, + { + "length": 35, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "91239A128", + "price": 11.16 + } + ] + } + ] + }, + "STAINLESS": { + "material": "18-8 stainless steel", + "lengths": [ + { + "length": 3, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A287", + "price": 12.48 + } + ] + }, + { + "length": 4, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A471", + "price": 5.5 + } + ] + }, + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A177", + "price": 8.06 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A179", + "price": 6.98 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A181", + "price": 8.8 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A182", + "price": 8.64 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A183", + "price": 8.17 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A168", + "price": 8.61 + } + ] + }, + { + "length": 15, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A119", + "price": 6.59 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A184", + "price": 11.15 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A472", + "price": 9.13 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A185", + "price": 5.83 + } + ] + }, + { + "length": 22, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A473", + "price": 6.22 + } + ] + }, + { + "length": 25, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A186", + "price": 6.98 + } + ] + }, + { + "length": 30, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A187", + "price": 9.43 + } + ] + }, + { + "length": 35, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92095A201", + "price": 4.83 + } + ] + }, + { + "length": 40, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92095A203", + "price": 5.81 + } + ] + }, + { + "length": 45, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92095A474", + "price": 4.08 + } + ] + }, + { + "length": 50, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92095A475", + "price": 5.25 + } + ] + }, + { + "length": 55, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92095A120", + "price": 9.74 + } + ] + } + ] + } + }, + "M4": { + "head": { + "diameter": 7.6, + "height": 2.2, + "drive": 2.5 + }, + "ZINC_PLATED": { + "material": "Zinc-plated alloy steel", + "lengths": [ + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91306A726", + "price": 8.72 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91306A659", + "price": 10.73 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91306A660", + "price": 13.08 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91306A727", + "price": 8.88 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91306A661", + "price": 14.26 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91306A728", + "price": 9.82 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91306A662", + "price": 14.79 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91306A663", + "price": 18.26 + } + ] + }, + { + "length": 30, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91306A729", + "price": 10.25 + } + ] + }, + { + "length": 35, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91306A731", + "price": 13.18 + } + ] + }, + { + "length": 50, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91306A732", + "price": 13.43 + } + ] + } + ] + }, + "BLACK": { + "material": "Black-oxide alloy steel", + "lengths": [ + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91239A136", + "price": 4.81 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91239A140", + "price": 14.07 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91239A144", + "price": 14.07 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91239A148", + "price": 14.19 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91239A149", + "price": 19.07 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91239A150", + "price": 14.3 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91239A151", + "price": 17.24 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91239A152", + "price": 15.67 + } + ] + }, + { + "length": 25, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91239A154", + "price": 19.25 + } + ] + }, + { + "length": 30, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91239A156", + "price": 19.07 + } + ] + }, + { + "length": 35, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91239A158", + "price": 18.39 + } + ] + }, + { + "length": 40, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91239A160", + "price": 12.43 + } + ] + } + ] + }, + "STAINLESS": { + "material": "18-8 stainless steel", + "lengths": [ + { + "length": 4, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A476", + "price": 11.55 + } + ] + }, + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A477", + "price": 8.64 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A188", + "price": 13.2 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A189", + "price": 11.11 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A190", + "price": 9.44 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A192", + "price": 14.77 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A193", + "price": 11.77 + } + ] + }, + { + "length": 15, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A125", + "price": 9.2 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A194", + "price": 15.5 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92095A478", + "price": 13.9 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A196", + "price": 9.47 + } + ] + }, + { + "length": 22, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A479", + "price": 7.28 + } + ] + }, + { + "length": 25, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A197", + "price": 10.91 + } + ] + }, + { + "length": 30, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A198", + "price": 14.64 + } + ] + }, + { + "length": 35, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92095A199", + "price": 8.39 + } + ] + }, + { + "length": 40, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92095A200", + "price": 10.13 + } + ] + }, + { + "length": 45, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92095A205", + "price": 8.91 + } + ] + }, + { + "length": 50, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "92095A209", + "price": 6.85 + } + ] + }, + { + "length": 55, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "92095A330", + "price": 7.84 + } + ] + }, + { + "length": 60, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "92095A480", + "price": 3.39 + } + ] + }, + { + "length": 65, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A126", + "price": 14.49 + } + ] + }, + { + "length": 70, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A172", + "price": 18.54 + } + ] + }, + { + "length": 80, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92095A173", + "price": 15.62 + } + ] + } + ] + } + } + }, + "FLAT": { + "M3": { + "head": { + "diameter": 6, + "height": 1.7, + "drive": 2, + "countersinkAngle": 90 + }, + "ZINC_PLATED": { + "material": "Zinc-plated alloy steel", + "lengths": [ + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A821", + "price": 9.26 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A822", + "price": 9.57 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A823", + "price": 9.69 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A824", + "price": 9.92 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A825", + "price": 11.77 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A863", + "price": 13.79 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A864", + "price": 14.97 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A865", + "price": 15.88 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A866", + "price": 16.26 + } + ] + }, + { + "length": 22, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91263A867", + "price": 11.12 + } + ] + }, + { + "length": 25, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91263A868", + "price": 12.43 + } + ] + } + ] + }, + "BLACK": { + "material": "Black-oxide alloy steel", + "lengths": [ + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A125", + "price": 5.57 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A126", + "price": 5.45 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A128", + "price": 5.82 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A130", + "price": 6.36 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A132", + "price": 7.34 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A133", + "price": 8.27 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A134", + "price": 10.84 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A135", + "price": 14.47 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A136", + "price": 11.03 + } + ] + }, + { + "length": 22, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91294A137", + "price": 8.44 + } + ] + }, + { + "length": 25, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91294A138", + "price": 9.32 + } + ] + }, + { + "length": 30, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91294A141", + "price": 10.94 + } + ] + }, + { + "length": 35, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91294A536", + "price": 6.78 + } + ] + } + ] + }, + "STAINLESS": { + "material": "18-8 stainless steel", + "lengths": [ + { + "length": 4, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92125A127", + "price": 8.0 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "92125A851", + "price": 112.0 + } + ] + }, + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A125", + "price": 4.92 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A126", + "price": 7.46 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A652", + "price": 104.44 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A128", + "price": 7.08 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A701", + "price": 99.12 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A130", + "price": 8.77 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A702", + "price": 122.78 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A132", + "price": 7.42 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A703", + "price": 103.88 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A133", + "price": 10.65 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A704", + "price": 149.1 + } + ] + }, + { + "length": 15, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A103", + "price": 7.64 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A134", + "price": 10.9 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A705", + "price": 152.6 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A135", + "price": 9.35 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A706", + "price": 130.9 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A136", + "price": 14.01 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A707", + "price": 196.14 + } + ] + }, + { + "length": 22, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92125A371", + "price": 15.6 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "92125A708", + "price": 218.4 + } + ] + }, + { + "length": 25, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A138", + "price": 12.54 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A709", + "price": 175.56 + } + ] + }, + { + "length": 30, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92125A140", + "price": 7.52 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "92125A711", + "price": 105.28 + } + ] + }, + { + "length": 35, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92125A141", + "price": 6.96 + } + ] + }, + { + "length": 40, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92125A150", + "price": 5.39 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 5000, + "partNumber": "92125A734", + "price": 539.0 + } + ] + }, + { + "length": 45, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92125A372", + "price": 16.1 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "92125A712", + "price": 225.4 + } + ] + }, + { + "length": 50, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92125A151", + "price": 7.92 + } + ] + } + ] + } + }, + "M4": { + "head": { + "diameter": 8, + "height": 2.3, + "drive": 2.5, + "countersinkAngle": 90 + }, + "ZINC_PLATED": { + "material": "Zinc-plated alloy steel", + "lengths": [ + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A826", + "price": 8.68 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A827", + "price": 7.79 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A828", + "price": 8.31 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A829", + "price": 8.56 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A830", + "price": 9.38 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91263A869", + "price": 14.75 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A871", + "price": 12.84 + } + ] + }, + { + "length": 25, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91263A872", + "price": 15.61 + } + ] + }, + { + "length": 30, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91263A873", + "price": 9.57 + } + ] + }, + { + "length": 35, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91263A874", + "price": 13.81 + } + ] + }, + { + "length": 40, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91263A875", + "price": 13.93 + } + ] + }, + { + "length": 45, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "91263A876", + "price": 7.67 + } + ] + }, + { + "length": 50, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "91263A877", + "price": 13.01 + } + ] + } + ] + }, + "BLACK": { + "material": "Black-oxide alloy steel", + "lengths": [ + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A186", + "price": 6.12 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A188", + "price": 6.25 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A190", + "price": 6.38 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A192", + "price": 6.38 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A193", + "price": 7.27 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A194", + "price": 7.57 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A195", + "price": 8.24 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A196", + "price": 8.93 + } + ] + }, + { + "length": 22, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91294A197", + "price": 13.52 + } + ] + }, + { + "length": 25, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A198", + "price": 10.91 + } + ] + }, + { + "length": 30, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91294A200", + "price": 17.91 + } + ] + }, + { + "length": 35, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91294A202", + "price": 11.59 + } + ] + }, + { + "length": 40, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91294A204", + "price": 12.85 + } + ] + }, + { + "length": 45, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "91294A484", + "price": 16.75 + } + ] + }, + { + "length": 50, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "91294A537", + "price": 9.54 + } + ] + } + ] + }, + "STAINLESS": { + "material": "18-8 stainless steel", + "lengths": [ + { + "length": 5, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92125A185", + "price": 10.77 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 1000, + "partNumber": "92125A714", + "price": 150.78 + } + ] + }, + { + "length": 6, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A186", + "price": 11.04 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A715", + "price": 154.56 + } + ] + }, + { + "length": 8, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A188", + "price": 9.27 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A716", + "price": 129.78 + } + ] + }, + { + "length": 10, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A190", + "price": 10.46 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A717", + "price": 146.44 + } + ] + }, + { + "length": 12, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A192", + "price": 12.77 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A718", + "price": 178.78 + } + ] + }, + { + "length": 14, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A193", + "price": 13.81 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A719", + "price": 193.34 + } + ] + }, + { + "length": 15, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A104", + "price": 11.07 + } + ] + }, + { + "length": 16, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A194", + "price": 14.01 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A721", + "price": 196.14 + } + ] + }, + { + "length": 18, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A196", + "price": 14.92 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A722", + "price": 208.88 + } + ] + }, + { + "length": 20, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A198", + "price": 14.53 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A723", + "price": 203.42 + } + ] + }, + { + "length": 22, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A201", + "price": 14.46 + } + ] + }, + { + "length": 25, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A202", + "price": 19.12 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "92125A724", + "price": 267.68 + } + ] + }, + { + "length": 30, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "92125A203", + "price": 26.04 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 4500, + "partNumber": "92125A735", + "price": 585.9 + } + ] + }, + { + "length": 35, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92125A204", + "price": 17.33 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 3500, + "partNumber": "92125A736", + "price": 606.55 + } + ] + }, + { + "length": 40, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92125A205", + "price": 18.04 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 3000, + "partNumber": "92125A737", + "price": 541.2 + } + ] + }, + { + "length": 45, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92125A207", + "price": 11.11 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 3000, + "partNumber": "92125A738", + "price": 666.6 + } + ] + }, + { + "length": 50, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92125A209", + "price": 10.14 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2500, + "partNumber": "92125A739", + "price": 507.0 + } + ] + }, + { + "length": 55, + "threading": "PARTIAL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "92125A373", + "price": 11.95 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 200, + "partNumber": "92125A725", + "price": 167.3 + } + ] + }, + { + "length": 60, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 25, + "partNumber": "92125A221", + "price": 9.71 + } + ] + }, + { + "length": 65, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92125A105", + "price": 14.13 + } + ] + }, + { + "length": 70, + "threading": "FULL", + "supplies": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 50, + "partNumber": "92125A106", + "price": 19.09 + } + ] + } + ] + } + } + } + }, + "nuts": { + "NYLOCK": { + "M3": { + "dimensions": { + "acrossFlats": 5.5, + "height": 4 + }, + "ZINC_PLATED": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90576A102", + "price": 4.88 + } + ], + "STAINLESS": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "93625A100", + "price": 6.94 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "93625A121", + "price": 97.16 + } + ], + "BLACK": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "93625A223", + "price": 5.4 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "93625A129", + "price": 189.0 + } + ] + }, + "M4": { + "dimensions": { + "acrossFlats": 7, + "height": 5, + "hexHeight": 4.17, + "insertDiameter": 5.05 + }, + "ZINC_PLATED": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90576A103", + "price": 4.92 + } + ], + "STAINLESS": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "93625A150", + "price": 7.03 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "93625A122", + "price": 98.42 + } + ], + "BLACK": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 10, + "partNumber": "93625A224", + "price": 6.0 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 500, + "partNumber": "93625A131", + "price": 210.0 + } + ] + } + }, + "HEX": { + "M3": { + "dimensions": { + "acrossFlats": 5.5, + "height": 2.4 + }, + "ZINC_PLATED": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90591A250", + "price": 3.06 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 4000, + "partNumber": "90591A346", + "price": 85.68 + } + ], + "STAINLESS": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91828A211", + "price": 5.68 + } + ], + "BLACK": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "98676A100", + "price": 8.08 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 5000, + "partNumber": "98676A610", + "price": 282.8 + } + ] + }, + "M4": { + "dimensions": { + "acrossFlats": 7, + "height": 3.2 + }, + "ZINC_PLATED": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "90591A255", + "price": 3.39 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 4000, + "partNumber": "90591A347", + "price": 94.92 + } + ], + "STAINLESS": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91828A231", + "price": 7.25 + } + ], + "BLACK": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "98676A200", + "price": 12.12 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 3000, + "partNumber": "98676A620", + "price": 254.52 + } + ] + } + } + }, + "washers": { + "M3": { + "dimensions": { + "innerDiameter": 3.2, + "outerDiameter": 7.0, + "thickness": 0.5 + }, + "ZINC_PLATED": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91166A210", + "price": 2.97 + }, + { + "pack": "SMALL_US", + "quantity": 50, + "partNumber": "91166A541", + "price": 4.46 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 4000, + "partNumber": "91166A200", + "price": 77.22 + }, + { + "pack": "LARGE_US", + "quantity": 1000, + "partNumber": "91166A542", + "price": 57.92 + } + ], + "BLACK": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "98269A420", + "price": 3.87 + }, + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "98269A151", + "price": 7.74 + }, + { + "pack": "LARGE_US", + "quantity": 2000, + "partNumber": "98269A152", + "price": 108.36 + } + ], + "STAINLESS": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "93475A210", + "price": 2.89 + }, + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "98689A268", + "price": 8.67 + }, + { + "pack": "LARGE_US", + "quantity": 2000, + "partNumber": "98689A269", + "price": 124.27 + } + ] + }, + "M4": { + "dimensions": { + "innerDiameter": 4.3, + "outerDiameter": 9.0, + "thickness": 0.9 + }, + "ZINC_PLATED": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "91166A230", + "price": 3.13 + }, + { + "pack": "SMALL_US", + "quantity": 50, + "partNumber": "91166A543", + "price": 4.7 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 4000, + "partNumber": "91166A350", + "price": 78.25 + }, + { + "pack": "LARGE_US", + "quantity": 1000, + "partNumber": "91166A544", + "price": 56.34 + } + ], + "BLACK": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "98687A141", + "price": 3.64 + }, + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "98687A308", + "price": 10.92 + }, + { + "pack": "LARGE_IMPORTED", + "quantity": 2000, + "partNumber": "98687A142", + "price": 50.96 + }, + { + "pack": "LARGE_US", + "quantity": 2000, + "partNumber": "98687A156", + "price": 152.88 + } + ], + "STAINLESS": [ + { + "pack": "SMALL_IMPORTED", + "quantity": 100, + "partNumber": "93475A230", + "price": 3.93 + }, + { + "pack": "SMALL_US", + "quantity": 100, + "partNumber": "98689A273", + "price": 10.61 + }, + { + "pack": "LARGE_US", + "quantity": 2000, + "partNumber": "98689A274", + "price": 149.34 + } + ] + } + } +} diff --git a/featurescripts/fasteners/vendor/stores.json b/featurescripts/fasteners/vendor/stores.json new file mode 100644 index 00000000..d96a5505 --- /dev/null +++ b/featurescripts/fasteners/vendor/stores.json @@ -0,0 +1,743 @@ +{ + "source": "Each store's /products.json, by quickFastenerTables.py fetch", + "products": [ + { + "store": "andymark.com", + "title": "10-32 x 0.5 in. Socket Head Cap Screw", + "sku": "am-1002", + "url": "https://andymark.com/products/10-32-x-0-5-in-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.625 in. Socket Head Cap Screw", + "sku": "am-1007", + "url": "https://andymark.com/products/10-32-x-0-625-in-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 2 in. Socket Head Cap Screw", + "sku": "am-1012", + "url": "https://andymark.com/products/1-4-20-x-2-in-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 1.125 in. Socket Head Cap Screw", + "sku": "am-1013", + "url": "https://andymark.com/products/10-32-x-1-125-in-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "10-32 x 1.5 in. Socket Head Cap Screw", + "sku": "am-1014", + "url": "https://andymark.com/products/10-32-x-1-5-in-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 10 mm Socket Head Cap Screw", + "sku": "am-1021", + "url": "https://andymark.com/products/m3-0-5-x-10-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 2.5 in. Socket Head Cap Screw", + "sku": "am-1024", + "url": "https://andymark.com/products/10-32-x-2-5-in-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 3 in. Socket Head Cap Screw", + "sku": "am-1030", + "url": "https://andymark.com/products/1-4-20-x-3-in-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 2.5 in Hex Drive Socket Head Cap Screw", + "sku": "am-1031", + "url": "https://andymark.com/products/1-4-20-x-2-5-in-hex-drive-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "4-40 x 0.375 in. Socket Head Cap Screw", + "sku": "am-1032", + "url": "https://andymark.com/products/4-40-x-0-375-in-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 0.5 in. Button Head Cap Screw", + "sku": "am-1039", + "url": "https://andymark.com/products/1-4-20-x-0-5-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 1.25 in. Socket Head Cap Screw", + "sku": "am-1041", + "url": "https://andymark.com/products/10-32-x-1-25-in-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.75 in. Socket Head Cap Screw", + "sku": "am-1047", + "url": "https://andymark.com/products/10-32-x-0-75-in-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 1.75 in. Socket Head Cap Screw", + "sku": "am-1048", + "url": "https://andymark.com/products/10-32-x-1-75-in-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "10-32 x 2 in. Socket Head Cap Screw", + "sku": "am-1049", + "url": "https://andymark.com/products/10-32-x-2-in-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 0.625 in. Hex Drive Socket Head Cap Screw", + "sku": "am-1053", + "url": "https://andymark.com/products/1-4-20-x-0-625-in-hex-drive-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 1 in. Socket Head Cap Screw", + "sku": "am-1056", + "url": "https://andymark.com/products/10-32-x-1-in-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 1.75 in. Hex Drive Socket Head Cap Screw", + "sku": "am-1058", + "url": "https://andymark.com/products/1-4-20-x-1-75-in-hex-drive-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 1.5 in. Button Head Cap Screw", + "sku": "am-1118", + "url": "https://andymark.com/products/1-4-20-x-1-5-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.625 in. Socket Head Cap Screw with Nylon Thread Lock Patch", + "sku": "am-1120", + "url": "https://andymark.com/products/10-32-x-0-625-in-socket-head-cap-screw-with-nylon-thread-lock-patch" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 1.5 in. Socket Head Cap Screw", + "sku": "am-1131", + "url": "https://andymark.com/products/1-4-20-x-1-5-in-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "4-40 x 0.5 in. Socket Head Cap Screw", + "sku": "am-1136", + "url": "https://andymark.com/products/4-40-x-0-5-in-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 1.375 in. Socket Head Cap Screw", + "sku": "am-1154", + "url": "https://andymark.com/products/10-32-x-1-375-in-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 2.25 in. Socket Head Cap Screw", + "sku": "am-1156", + "url": "https://andymark.com/products/10-32-x-2-25-in-socket-head-cap-screw-2" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.75 in. Flat Head Cap Screw", + "sku": "am-1170", + "url": "https://andymark.com/products/10-32-x-0-75-in-flat-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 1.25 in. Button Head Cap Screw", + "sku": "am-1183", + "url": "https://andymark.com/products/1-4-20-x-1-25-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M4-0.7 x 55 mm Socket Head Cap Screw", + "sku": "am-1251", + "url": "https://andymark.com/products/m4-0-7-x-55-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.625 in. Flat Head Cap Screw", + "sku": "am-1252", + "url": "https://andymark.com/products/10-32-x-0-625-in-flat-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 6 mm Socket Head Cap Screw", + "sku": "am-1254", + "url": "https://andymark.com/products/m3-0-5-x-6-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 3.25 in. Socket Head Cap Screw", + "sku": "am-1258", + "url": "https://andymark.com/products/10-32-x-3-25-in-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "10-32 x 1.25 in. Button Head Cap Screw", + "sku": "am-1260", + "url": "https://andymark.com/products/10-32-x-1-25-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M4-0.7 x 10 mm Socket Head Cap Screw", + "sku": "am-1264", + "url": "https://andymark.com/products/m4-0-7-x-10-mm-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "10-32 x 1 in. Flat Head Cap Screw", + "sku": "am-1324", + "url": "https://andymark.com/products/10-32-x-1-in-flat-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 1 in. Socket Head Cap Screw", + "sku": "am-1341", + "url": "https://andymark.com/products/1-4-20-x-1-in-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M4-0.7 x 5 mm Socket Head Cap Screw", + "sku": "am-1343", + "url": "https://andymark.com/products/m4-0-7-x-5-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.375 in. Socket Head Cap Screw", + "sku": "am-1359", + "url": "https://andymark.com/products/10-32-x-0-375-in-socket-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 14 mm Socket Head Cap Screw", + "sku": "am-1367", + "url": "https://andymark.com/products/m3-0-5-x-14-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 55 mm Socket Head Cap Screw", + "sku": "am-1379", + "url": "https://andymark.com/products/m3-0-5-x-55-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 2 in. Flat Head Cap Screw Black Oxide", + "sku": "am-1383", + "url": "https://andymark.com/products/10-32-x-2-in-flat-head-cap-screw-black-oxide" + }, + { + "store": "andymark.com", + "title": "10-32 x 1 in. Button Head Cap Screw", + "sku": "am-1396", + "url": "https://andymark.com/products/10-32-x-1-in-button-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "10-32 x 2.75 in. Socket Head Cap Screw", + "sku": "am-1397", + "url": "https://andymark.com/products/10-32-x-2-75-in-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M4-0.7 x 50 mm Socket Head Cap Screw", + "sku": "am-1401", + "url": "https://andymark.com/products/m4-0-7-x-50-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 3.5 in. Socket Head Cap Screw", + "sku": "am-1402", + "url": "https://andymark.com/products/10-32-x-3-5-in-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.5 in. Flat Head Cap Screw", + "sku": "am-1404", + "url": "https://andymark.com/products/10-32-x-0-5-in-flat-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 1.75 in. Button Head Cap Screw", + "sku": "am-1420", + "url": "https://andymark.com/products/1-4-20-x-1-75-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M4-0.7 x 40 mm Socket Head Cap Screw", + "sku": "am-1422", + "url": "https://andymark.com/products/m4-0-7-x-40-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M4-0.7 x 35 mm Black Oxide Button Head Cap Screw", + "sku": "am-1441", + "url": "https://andymark.com/products/m4-0-7-x-35-mm-black-oxide-button-head-cap-screw-1" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 8 mm Socket Head Cap Screw with Thread Patch", + "sku": "am-1500", + "url": "https://andymark.com/products/m3-0-5-x-8-mm-socket-head-cap-screw-with-thread-patch" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.5 in. Hex Drive Flat Head Cap Screw with Nylon Patch", + "sku": "am-1505", + "url": "https://andymark.com/products/10-32-x-0-5-in-hex-drive-flat-head-cap-screw-with-nylon-patch" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.5 in. Button Head Cap Screw", + "sku": "am-1512", + "url": "https://andymark.com/products/10-32-x-0-5-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 0.375 in. Button Head Cap Screw", + "sku": "am-1520", + "url": "https://andymark.com/products/1-4-20-x-0-375-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 3 in. Socket Head Cap Screw", + "sku": "am-1522", + "url": "https://andymark.com/products/10-32-x-3-in-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.75 in. Hex Drive Button Head Cap Screw", + "sku": "am-1524", + "url": "https://andymark.com/products/10-32-x-0-75-in-hex-drive-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 1 in. Button Head Cap Screw", + "sku": "am-1525", + "url": "https://andymark.com/products/1-4-20-x-1-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M4-0.7 x 25 mm Socket Head Cap Screw", + "sku": "am-1532", + "url": "https://andymark.com/products/m4-0-7-x-25-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M4-0.7 x 30 mm Socket Head Cap Screw", + "sku": "am-1533", + "url": "https://andymark.com/products/m4-0-7-x-30-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.625 in. Button Head Cap Screw with Nylon Patch", + "sku": "am-1549", + "url": "https://andymark.com/products/10-32-x-0-625-in-button-head-cap-screw-with-nylon-patch" + }, + { + "store": "andymark.com", + "title": "6-32 x 0.625 in. Flat Head Socket Cap Screw", + "sku": "am-1570", + "url": "https://andymark.com/products/6-32-x-0-625-in-flat-head-socket-cap-screw" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 30 mm Socket Head Cap Screw", + "sku": "am-1578", + "url": "https://andymark.com/products/m3-0-5-x-30-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 1.75 in. Button Head Cap Screw", + "sku": "am-1584", + "url": "https://andymark.com/products/10-32-x-1-75-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "4-40 x 0.375 in. Flat Head Cap Screw with Nylon Patch", + "sku": "am-1586", + "url": "https://andymark.com/products/4-40-x-0-375-in-flat-head-cap-screw-with-nylon-patch" + }, + { + "store": "andymark.com", + "title": "10-32 x 3/8 in. Button Head Cap Screw with Nylon Patch", + "sku": "am-1588", + "url": "https://andymark.com/products/10-32-x-3-8-in-button-head-cap-screw-with-nylon-patch" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 2 in. Button Head Cap Screw", + "sku": "am-1655", + "url": "https://andymark.com/products/1-4-20-x-2-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "6-32 x 2.125 in. Socket Head Cap Screw", + "sku": "am-1657", + "url": "https://andymark.com/products/6-32-x-2-125-in-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 45 mm Socket Head Cap Screw", + "sku": "am-1659", + "url": "https://andymark.com/products/m3-0-5-x-45-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 35 mm Socket Head Cap Screw", + "sku": "am-1671", + "url": "https://andymark.com/products/m3-0-5-x-35-mm-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 0.75 in. Flat Head Cap Screw", + "sku": "am-1672", + "url": "https://andymark.com/products/1-4-20-x-0-75-in-flat-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 5 mm Socket Head Cap Screw with Nylon Patch", + "sku": "am-1675", + "url": "https://andymark.com/products/m3-0-5-x-5-mm-socket-head-cap-screw-with-nylon-patch" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.5 in. Button Head Cap Screw with Nylon Patch", + "sku": "am-1676", + "url": "https://andymark.com/products/10-32-x-0-5-in-button-head-cap-screw-with-nylon-patch" + }, + { + "store": "andymark.com", + "title": "4-40 x 0.25 in. Button Head Cap Screw with Nylon Patch", + "sku": "am-1679", + "url": "https://andymark.com/products/4-40-x-0-25-in-button-head-cap-screw-with-nylon-patch" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 0.625 in. Button Head Cap Screw", + "sku": "am-1681", + "url": "https://andymark.com/products/1-4-20-x-0-625-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "8-32 x 0.5 in. Button Head Cap Screw with Nylon Patch", + "sku": "am-1691", + "url": "https://andymark.com/products/8-32-x-0-5-in-button-head-cap-screw-with-nylon-patch" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 2.5 in. Button Head Cap Screw", + "sku": "am-1695", + "url": "https://andymark.com/products/1-4-20-x-2-5-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 12 mm Socket Head Cap Screw with Nylon Patch", + "sku": "am-1706", + "url": "https://andymark.com/products/m3-0-5-x-12-mm-socket-head-cap-screw-with-nylon-patch" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 2 in. Flat Head Cap Screw", + "sku": "am-1707", + "url": "https://andymark.com/products/1-4-20-x-2-in-flat-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 8 mm Flat Head Cap Screw", + "sku": "am-1723", + "url": "https://andymark.com/products/m3-0-5-x-8mm-flat-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 5 mm Zinc Flat Head Cap Screw with Nylon Patch", + "sku": "am-1724", + "url": "https://andymark.com/products/m3-0-5-x-5-mm-zinc-flat-head-cap-screw-with-nylon-patch" + }, + { + "store": "andymark.com", + "title": "10-32 x 1.5 in. Button Head Cap Screw", + "sku": "am-1730", + "url": "https://andymark.com/products/10-32-x-1-5-in-button-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.875 in. Socket Head Cap Screw with Nylon Patch", + "sku": "am-1737", + "url": "https://andymark.com/products/10-32-x-0-875-in-socket-head-cap-screw-with-nylon-patch" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.5 in. Socket Head Cap Screw with Nylon Thread Lock Patch", + "sku": "am-1744", + "url": "https://andymark.com/products/10-32-x-0-500-in-socket-head-cap-screw-with-nylon-thread-lock-patch" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.375 in. Socket Head Cap Screw with Nylon Patch", + "sku": "am-1745", + "url": "https://andymark.com/products/10-32-x-0-375-in-socket-head-cap-screw-with-nylon-patch" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 14 mm Socket Head Cap Screw with Nylon Thread Lock Patch", + "sku": "am-1750", + "url": "https://andymark.com/products/m3-0-5-x-14-mm-socket-head-cap-screw-with-nylon-thread-lock-patch" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.875 in. Socket Head Cap Screw", + "sku": "am-1753", + "url": "https://andymark.com/products/10-32-x-0-875-in-socket-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 0.75 in. Button Head Cap Screw", + "sku": "am-1754", + "url": "https://andymark.com/products/screw-bhcs-1-4-20-x-750-zinc" + }, + { + "store": "andymark.com", + "title": "10-32 x 1.500 in. Flat Head Cap Screw", + "sku": "am-1756", + "url": "https://andymark.com/products/10-32-x-1-500-in-flat-head-cap-screw" + }, + { + "store": "andymark.com", + "title": "10-32 x 1 in. Socket Head Cap Screw with Nylon Thread Lock Patch", + "sku": "am-1763", + "url": "https://andymark.com/products/10-32-x-1-000-in-socket-head-cap-screw-with-nylon-thread-lock-patch" + }, + { + "store": "andymark.com", + "title": "M3-0.5 x 12 mm Flat Head Cap Screw", + "sku": "am-1765", + "url": "https://andymark.com/products/hardware-screw-fhsc-m3-0-5-x-12mm-steel-zinc-plated" + }, + { + "store": "andymark.com", + "title": "10-32 x 0.25 in. Socket Head Cap Screw with Nylon Thread Lock Patch", + "sku": "am-1771", + "url": "https://andymark.com/products/10-32-x-250-in-socket-head-cap-screw-with-nylon-thread-lock-patch" + }, + { + "store": "andymark.com", + "title": "1/4-20 x 3.25 in. Socket Head Cap Screw", + "sku": "am-3338", + "url": "https://andymark.com/products/1-4-20-x-3-25-in-socket-head-cap-screw" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x .750\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0135", + "url": "https://wcproducts.com/products/wcp-0135" + }, + { + "store": "wcproducts.com", + "title": "#8-32 x .500\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0250", + "url": "https://wcproducts.com/products/wcp-0250" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x .250\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0251", + "url": "https://wcproducts.com/products/wcp-0251" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x .375\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0252", + "url": "https://wcproducts.com/products/wcp-0252" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x .500\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0253", + "url": "https://wcproducts.com/products/wcp-0253" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 1.000\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0255", + "url": "https://wcproducts.com/products/wcp-0255" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 1.250\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0256", + "url": "https://wcproducts.com/products/wcp-0256" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 1.500\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0257", + "url": "https://wcproducts.com/products/wcp-0257" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 1.750\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0258", + "url": "https://wcproducts.com/products/wcp-0258" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 2.000\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0259", + "url": "https://wcproducts.com/products/wcp-0259" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 2.250\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0260", + "url": "https://wcproducts.com/products/wcp-0260" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 2.500\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0261", + "url": "https://wcproducts.com/products/wcp-0261" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 2.750\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0262", + "url": "https://wcproducts.com/products/wcp-0262" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 3.000\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0263", + "url": "https://wcproducts.com/products/wcp-0263" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x .250\" L SHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0264", + "url": "https://wcproducts.com/products/wcp-0264" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x .375\" L SHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0265", + "url": "https://wcproducts.com/products/wcp-0265" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x .500\" L SHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0266", + "url": "https://wcproducts.com/products/wcp-0266" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 1.000\" L SHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0267", + "url": "https://wcproducts.com/products/wcp-0267" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 1.500\" L SHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0268", + "url": "https://wcproducts.com/products/wcp-0268" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 2.000\" L SHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0269", + "url": "https://wcproducts.com/products/wcp-0269" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 2.500\" L SHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0270", + "url": "https://wcproducts.com/products/wcp-0270" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 3.000\" L SHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-0271", + "url": "https://wcproducts.com/products/wcp-0271" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 3.500\" L SHCS (Steel, Black Oxide) (25-Pack)", + "sku": "WCP-0272", + "url": "https://wcproducts.com/products/wcp-0272" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 4.000\" L SHCS (Steel, Black Oxide) (25-Pack)", + "sku": "WCP-0273", + "url": "https://wcproducts.com/products/wcp-0273" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 4.500\" L SHCS (Steel, Black Oxide) (25-Pack)", + "sku": "WCP-0274", + "url": "https://wcproducts.com/products/wcp-0274" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 5.000\" L SHCS (Steel, Black Oxide) (25-Pack)", + "sku": "WCP-0275", + "url": "https://wcproducts.com/products/wcp-0275" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x .875\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-1463", + "url": "https://wcproducts.com/products/wcp-1463" + }, + { + "store": "wcproducts.com", + "title": "#8-32 x .250\" L BHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-1548", + "url": "https://wcproducts.com/products/wcp-1548" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 1.750\" L SHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-1549", + "url": "https://wcproducts.com/products/wcp-1549" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x 4.750 L BHCS (Steel, Black Oxide) (25-Pack)", + "sku": "WCP-1656", + "url": "https://wcproducts.com/products/wcp-1656" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x .250\" L BHCS (Aluminum, Anodized) (25-Pack)", + "sku": "WCP-2110", + "url": "https://wcproducts.com/products/wcp-2110" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x .375\" L BHCS (Aluminum, Anodized) (25-Pack)", + "sku": "WCP-2111", + "url": "https://wcproducts.com/products/wcp-2111" + }, + { + "store": "wcproducts.com", + "title": "#10-32 x .500\" L BHCS (Aluminum, Anodized) (25-Pack)", + "sku": "WCP-2112", + "url": "https://wcproducts.com/products/wcp-2112" + }, + { + "store": "wcproducts.com", + "title": "#8-32 x 1.000\" L SHCS (Steel, Black Oxide) (50-Pack)", + "sku": "WCP-2249", + "url": "https://wcproducts.com/products/wcp-2249" + } + ] +} diff --git a/featurescripts/gear/robotGear.fs b/featurescripts/gear/robotGear.fs index 351e35e2..bac2c8c2 100644 --- a/featurescripts/gear/robotGear.fs +++ b/featurescripts/gear/robotGear.fs @@ -7,11 +7,11 @@ import(path : "948c83c1b1ac83de4ccf921b", version : "5bd77bd9ef3230343bfbc217"); export import(path : "b82468283e5ec09720bad185", version : "142c41c73cc2f8336c28931e"); import(path : "0195d390c3944cd4fab21ce0", version : "82243acdb77d04d0ca39cd49"); import(path : "6c65805103086c85362ee4b7", version : "c8ae72bd99ee1f581e10e759"); -import(path : "0794d10863d10d98a88c2ab4", version : "4f09b23b6e418ecb226e90c1"); +import(path : "0794d10863d10d98a88c2ab4", version : "ee89dca8b88ae07af559109e"); import(path : "0103ad63394d7713fbf44448", version : "5f7d67b62160df309da69ec3"); // Exports BoreShape, Fit, and SplineType, parameter types -export import(path : "01f0c5634015659514b83da1", version : "f05c6c359e1294a2302929fa"); -import(path : "f9a7532fe0d68211bd3a8112", version : "3eab840692316e1dc233f95f"); +export import(path : "01f0c5634015659514b83da1", version : "2e33b7669ec63ae45dfedbfc"); +import(path : "f9a7532fe0d68211bd3a8112", version : "ae9a69eec915470fa59843e7"); import(path : "58d66340f7b70cfc86606676", version : "da525a155390a101429f7f9a"); // Where the gear is on its location: its bottom, middle, top, or a bevel gear's apex import(path : "554542fc345271814c4463b0", version : "5b47f8330c585dfb754b8a98"); diff --git a/featurescripts/motor/robotMotor.fs b/featurescripts/motor/robotMotor.fs index 74cfe079..30a9033d 100644 --- a/featurescripts/motor/robotMotor.fs +++ b/featurescripts/motor/robotMotor.fs @@ -5,7 +5,7 @@ import(path : "8b8c46128a5dbc2594925f4a", version : "0a4039e144d8b21589cb8d49"); import(path : "01402b7c9eebd8bf0b5d3e52", version : "bb7c494edc43a307e631af8d"); import(path : "0195d390c3944cd4fab21ce0", version : "82243acdb77d04d0ca39cd49"); import(path : "6c65805103086c85362ee4b7", version : "c8ae72bd99ee1f581e10e759"); -import(path : "0794d10863d10d98a88c2ab4", version : "4f09b23b6e418ecb226e90c1"); +import(path : "0794d10863d10d98a88c2ab4", version : "ee89dca8b88ae07af559109e"); // Exports startOffsetPredicate's types export import(path : "b82468283e5ec09720bad185", version : "142c41c73cc2f8336c28931e"); // Exports MateConnectorAxisType, a parameter type diff --git a/featurescripts/released/bearingHat/robotBearingHat.fs b/featurescripts/released/bearingHat/robotBearingHat.fs index 138fc625..ad691f7c 100644 --- a/featurescripts/released/bearingHat/robotBearingHat.fs +++ b/featurescripts/released/bearingHat/robotBearingHat.fs @@ -5,7 +5,7 @@ import(path : "8b8c46128a5dbc2594925f4a", version : "0a4039e144d8b21589cb8d49"); import(path : "01402b7c9eebd8bf0b5d3e52", version : "bb7c494edc43a307e631af8d"); import(path : "452d43a015d17145ad7775e4", version : "5632c018fec45fab4e533392"); import(path : "6c65805103086c85362ee4b7", version : "c8ae72bd99ee1f581e10e759"); -import(path : "0794d10863d10d98a88c2ab4", version : "4f09b23b6e418ecb226e90c1"); +import(path : "0794d10863d10d98a88c2ab4", version : "ee89dca8b88ae07af559109e"); export import(path : "58d66340f7b70cfc86606676", version : "da525a155390a101429f7f9a"); export import(path : "cd2c6499801ec51a7947274e", version : "6a0eab11cdac6776966381cd"); diff --git a/featurescripts/released/belt/robotBelt.fs b/featurescripts/released/belt/robotBelt.fs index 477166f1..0162101b 100644 --- a/featurescripts/released/belt/robotBelt.fs +++ b/featurescripts/released/belt/robotBelt.fs @@ -5,7 +5,7 @@ import(path : "0195d390c3944cd4fab21ce0", version : "82243acdb77d04d0ca39cd49"); import(path : "5bee4cc7b6b0575cdb535750", version : "5a2eb2e4cd6ae00ea4c51aa9"); import(path : "ea127c07807644fb48d3a1ae", version : "71504a904ad4d8a579c5b4da"); -import(path : "0794d10863d10d98a88c2ab4", version : "4f09b23b6e418ecb226e90c1"); +import(path : "0794d10863d10d98a88c2ab4", version : "ee89dca8b88ae07af559109e"); import(path : "70d403fe3ae377ef6f571c77", version : "37b69791ddfa580f964f8216"); export import(path : "4d2d3f0157d54e1b6a06420a", version : "7547beea4ab48e0d804abe84"); diff --git a/featurescripts/released/belt/robotPulley.fs b/featurescripts/released/belt/robotPulley.fs index e8d138db..65cc12fd 100644 --- a/featurescripts/released/belt/robotPulley.fs +++ b/featurescripts/released/belt/robotPulley.fs @@ -4,7 +4,7 @@ import(path : "8b8c46128a5dbc2594925f4a", version : "0a4039e144d8b21589cb8d49"); export import(path : "484d2d590d4a2ab919981b0e", version : "d33fae6083ef468201c775de"); import(path : "6c65805103086c85362ee4b7", version : "c8ae72bd99ee1f581e10e759"); -import(path : "0794d10863d10d98a88c2ab4", version : "4f09b23b6e418ecb226e90c1"); +import(path : "0794d10863d10d98a88c2ab4", version : "ee89dca8b88ae07af559109e"); import(path : "01f0c5634015659514b83da1", version : "2e33b7669ec63ae45dfedbfc"); annotation { diff --git a/featurescripts/released/frame/robotFrame.fs b/featurescripts/released/frame/robotFrame.fs index 9518b0e9..886959bb 100644 --- a/featurescripts/released/frame/robotFrame.fs +++ b/featurescripts/released/frame/robotFrame.fs @@ -3,7 +3,7 @@ import(path : "onshape/std/common.fs", version : "2960.0"); RobotFrameIcon::import(path : "94bcdc0a50ec32f81a3aa449", version : "0ee450364120d3c453712009"); import(path : "6c65805103086c85362ee4b7", version : "c8ae72bd99ee1f581e10e759"); -import(path : "2e446fc39b56fd5bff8ff054", version : "401fb9d1cb0ce9d3e4986767"); +import(path : "dd81a3971f6dacd7133eb42f", version : "2a82234fd5ed718ded9c856a"); import(path : "0794d10863d10d98a88c2ab4", version : "4f09b23b6e418ecb226e90c1"); import(path : "ff444db0395e01aaa8c7e555", version : "10472a7480f06be298f0df62"); // Also exports the enums used as parameter types diff --git a/featurescripts/released/nutStrip/nutStripTables.gen.fs b/featurescripts/released/nutStrip/nutStripTables.gen.fs index d47e2d26..3585c144 100644 --- a/featurescripts/released/nutStrip/nutStripTables.gen.fs +++ b/featurescripts/released/nutStrip/nutStripTables.gen.fs @@ -1,6 +1,6 @@ FeatureScript 2960; import(path : "onshape/std/common.fs", version : "2960.0"); -import(path : "0794d10863d10d98a88c2ab4", version : "4f09b23b6e418ecb226e90c1"); // core/robotProperties.fs +import(path : "0794d10863d10d98a88c2ab4", version : "ee89dca8b88ae07af559109e"); // core/robotProperties.fs /* Generated from nutStripTables.py by `fs gen` -- DO NOT EDIT */ diff --git a/featurescripts/released/nutStrip/robotNutStrip.fs b/featurescripts/released/nutStrip/robotNutStrip.fs index 5f3cd587..a272d380 100644 --- a/featurescripts/released/nutStrip/robotNutStrip.fs +++ b/featurescripts/released/nutStrip/robotNutStrip.fs @@ -3,7 +3,7 @@ import(path : "onshape/std/common.fs", version : "2960.0"); RobotNutStripIcon::import(path : "70fa8905356b9bb43809037c", version : "12b10c2429507285a4d9cef1"); import(path : "6c65805103086c85362ee4b7", version : "c8ae72bd99ee1f581e10e759"); -import(path : "2e446fc39b56fd5bff8ff054", version : "67a499eda38c0e000182de1b"); +import(path : "dd81a3971f6dacd7133eb42f", version : "2a82234fd5ed718ded9c856a"); import(path : "e316d3a31f8726cbc70fe081", version : "aa5706f481f463c73af69af8"); // Also exports the enums used as parameter types export import(path : "9fc889bb93a3c29feb4f9ae5", version : "45d4504d059b748ebf938c51"); diff --git a/featurescripts/released/spacer/robotSpacerUi.fs b/featurescripts/released/spacer/robotSpacerUi.fs index 6ad35e86..469c2ead 100644 --- a/featurescripts/released/spacer/robotSpacerUi.fs +++ b/featurescripts/released/spacer/robotSpacerUi.fs @@ -9,7 +9,7 @@ export import(path : "0195d390c3944cd4fab21ce0", version : "82243acdb77d04d0ca39 export import(path : "948c83c1b1ac83de4ccf921b", version : "5bd77bd9ef3230343bfbc217"); -import(path : "8fc3df84a88e74d27ad43d26", version : "06fb8de71c6fd5a2c48eb7fd"); +import(path : "8fc3df84a88e74d27ad43d26", version : "e86b51c08c2cd84288fa9669"); // Exports Fit, a parameter type export import(path : "926d933eb33b11a3452660fd", version : "d69c937bc00dba371714fef9"); diff --git a/fs-studios.json b/fs-studios.json index 8f08e904..53d315c7 100644 --- a/fs-studios.json +++ b/fs-studios.json @@ -8,6 +8,7 @@ "0195d390c3944cd4fab21ce0": "core/location.fs", "01f0c5634015659514b83da1": "core/bore.fs", "032a0037ea2335b45777aeca": "released/tensioner/robotTensioner.fs", + "03f9d1bdfb1a3f2203b11759": "fasteners/fasteners.fs", "07577f926d77f76e2938528f": "released/printAdapter/robotPrintAdapter.fs", "0794d10863d10d98a88c2ab4": "core/robotProperties.fs", "0f49cec93d41f796943a8662": "released/frame/robotFrame.fs", @@ -20,7 +21,6 @@ "1dbb81f94847cad5d242eb98": "released/grid/robotGrid.fs", "20659432897c109a97ad647f": "released/belt/robotBeltUiCommon.fs", "21762d39019c8b2289e2fbb8": "core/stdExtrude.fs", - "2e446fc39b56fd5bff8ff054": "core/cutStock.fs", "3651d7ff6d8577f322b85723": "core/program.fs", "452d43a015d17145ad7775e4": "core/boundary.fs", "45dff3bbc433a900eed1ccbc": "core/opPointTransform.fs", @@ -32,6 +32,7 @@ "58d66340f7b70cfc86606676": "core/mounting.fs", "5bee4cc7b6b0575cdb535750": "released/belt/robotBeltModel.fs", "603be214b7d30fd438966545": "released/shaft/robotShaftCommon.fs", + "636068ba8865e57628d38e34": "color/robotColor.fs", "6451a02d1f9f40630984864b": "released/printAdapter/printAdapterProfiles.gen.fs", "6c5704188560481068f46172": "released/multiRevolve/multiRevolve.fs", "6c65805103086c85362ee4b7": "core/robotFeature.fs", @@ -40,6 +41,7 @@ "70d403fe3ae377ef6f571c77": "core/loop.fs", "72b77780ed382be329401627": "core/frameTags.fs", "8476fdfb6850f8991026c12f": "edit/robotEdit.fs", + "86033ffc9510cee8dd457b7f": "fasteners/fastenerTables.gen.fs", "8b8c46128a5dbc2594925f4a": "core/coreUtils.fs", "8fc3df84a88e74d27ad43d26": "released/shaft/robotShaftTables.gen.fs", "8fce00629c71b941d2d87732": "released/belt/robotBelt.fs", @@ -66,6 +68,7 @@ "cd2c6499801ec51a7947274e": "released/bearingHat/bearingHatTables.gen.fs", "d22e6409e86d7c19c6dfcbfe": "released/fillet/robotFillet.fs", "d82c5bf9082d0054f8f0b419": "released/belt/robotBeltTables.gen.fs", + "dd81a3971f6dacd7133eb42f": "core/cutStock.fs", "ddb7ed34daacf0c723da6d87": "released/lighten/robotLighten.fs", "e14d0b81a4d6b12b9dda1cb5": "core/iterUtils.fs", "e269bd2b7266145c47eaf374": "released/belt/robotPulleyCommon.fs", diff --git a/fs_cli/branches.py b/fs_cli/branches.py new file mode 100644 index 00000000..8c34be4f --- /dev/null +++ b/fs_cli/branches.py @@ -0,0 +1,140 @@ +"""Each git branch's own workspace in the backend document. + +With `main_branch` set in [tool.fs], the backend's main workspace holds that branch's FeatureScript and changes only +by merging (see `fs sync-main`); every other branch pushes to a workspace of its own, named after it. See +docs/fs-cli.md#branches. +""" + +from __future__ import annotations + +import dataclasses +import enum +import os +import pathlib +from collections.abc import Callable + +from fs_cli.config import Config +from fs_cli.git import current_branch +from fs_cli.remote import Remote, RemoteWorkspace +from fs_cli.state import State, load_image_files, load_studio_files +from onshape_api.paths.paths import InstancePath +from onshape_api.types import MergeStrategy + +# Names the branch where git can't, e.g. on the detached HEAD a CI checkout may leave +BRANCH_VARIABLE = "FS_BRANCH" +# Describes the workspaces fs makes, which are the only ones `fs branches --prune` deletes +MADE_BY_FS = "Made by fs for a git branch" + + +class BranchError(Exception): + pass + + +class Access(enum.Enum): + """What a command does with the backend document.""" + + # Reads its branch's workspace, or the main workspace's until it has one + READ = "read" + # Writes its branch's workspace, which it creates + WRITE = "write" + # Runs only on the main branch, against the main workspace: releasing, and landing main + MAIN = "main" + + +@dataclasses.dataclass +class Backend: + """The backend workspace a command works in, and the state recording what it last synced with it.""" + + instance: InstancePath + state_path: pathlib.Path + branch: str | None = None + # The branch's workspace's id, which its state records; None for the main workspace + workspace_id: str | None = None + + +def branch_name(config: Config) -> str | None: + return os.environ.get(BRANCH_VARIABLE) or current_branch(config.root) + + +def resolve(config: Config, remote: Remote, access: Access, log: Callable[[str], None] = print) -> Backend: + """The backend workspace for the git branch checked out.""" + main = Backend(config.backend, config.state_path) + if config.main_branch is None: + return main + branch = branch_name(config) + if branch is None: + raise BranchError(f"fs works on a git branch: check one out, or name it in {BRANCH_VARIABLE}.") + if branch == config.main_branch: + if access is Access.WRITE: + raise BranchError( + f"The backend's main workspace holds {branch}, and changes only by merging: push from a branch of " + f"your own, which gets a workspace of its own, and `fs sync-main` lands {branch} once it's merged." + ) + return dataclasses.replace(main, branch=branch) + if access is Access.MAIN: + raise BranchError(f"This runs only on {config.main_branch}, so that what it releases is what was merged.") + workspace = find_workspace(config, remote, branch) + if workspace is None: + if access is Access.READ: + log(f"{branch} has no workspace in Onshape yet, so this reads the main workspace; `fs push` makes one.") + return dataclasses.replace(main, branch=branch) + workspace = create_workspace(config, remote, branch, log) + start_state(config, branch, workspace.id) + instance = InstancePath(config.backend.document_id, workspace.id) + if access is Access.WRITE: + catch_up(config, remote, instance, branch, log) + return Backend(instance, config.state_path_for(branch), branch, workspace.id) + + +def find_workspace(config: Config, remote: Remote, name: str) -> RemoteWorkspace | None: + found = [ + workspace + for workspace in remote.workspaces(config.backend.document_id) + if workspace.name == name and workspace.id != config.backend.instance_id + ] + if len(found) > 1: + raise BranchError(f"The backend document has {len(found)} workspaces named {name}; delete all but one.") + return found[0] if found else None + + +def create_workspace(config: Config, remote: Remote, name: str, log: Callable[[str], None] = print) -> RemoteWorkspace: + """Branches a workspace from the main workspace's latest version, as Onshape's UI branches only from versions.""" + latest = remote.versions(config.backend)[-1] + log(f"Creating a workspace for {name}, from version {latest.name}...") + return remote.create_workspace(config.backend.document_id, latest.id, name, MADE_BY_FS) + + +def branch_workspaces(config: Config, remote: Remote) -> list[RemoteWorkspace]: + """The workspaces fs made for branches, a sync's included.""" + return [workspace for workspace in remote.workspaces(config.backend.document_id) if workspace.description == MADE_BY_FS] + + +def start_state(config: Config, branch: str, workspace_id: str) -> None: + """Starts a new workspace's state as the main workspace's, whose tabs it starts with: a tab whose code is what main's + state records needs no git history to show it's safe to push over.""" + state = State.load(config.state_path, config.studios_path) + state.path = config.state_path_for(branch) + state.workspace = workspace_id + state.save() + + +def catch_up( + config: Config, remote: Remote, instance: InstancePath, branch: str, log: Callable[[str], None] = print +) -> None: + """Merges the main workspace into a branch's when the branch lacks a tab fs-studios.json tracks which main has, + so that the branch keeps its id. That's a tab another branch added, which this one has from git since merging it; + pushing would otherwise make it again, under a new id. Tabs changed in both keep the branch's code, which a push + then replaces with the files'.""" + tracked = load_studio_files(config.studios_path).keys() | load_image_files(config.studios_path).keys() + missing = (tracked & remote.element_ids(config.backend)) - remote.element_ids(instance) + if not missing: + return + log(f"Merging the main workspace into {branch}'s, for {len(missing)} tab(s) it lacks...") + merge(remote, instance, config.backend.instance_id, MergeStrategy.KEEP) + + +def merge(remote: Remote, target: InstancePath, source_workspace_id: str, strategy: MergeStrategy) -> None: + try: + remote.merge(target, source_workspace_id, strategy) + except ValueError as error: + raise BranchError(str(error)) from error diff --git a/fs_cli/cli.py b/fs_cli/cli.py index 0a103d8b..6510c51b 100644 --- a/fs_cli/cli.py +++ b/fs_cli/cli.py @@ -9,19 +9,33 @@ from __future__ import annotations import argparse +import dataclasses import collections import difflib import json import os import pathlib +import runpy import sys from fs_lsp.formatter import format_source, is_generated from fs_lsp.project import Module, Project +from fs_cli.branches import ( + Access, + BranchError, + branch_name, + branch_workspaces, + create_workspace, + find_workspace, + merge, + start_state, +) +from fs_cli.branches import resolve as resolve_backend from fs_cli.config import Config, ConfigError, load_config +from fs_cli.release_files import RELEASES_FOLDER, ReleaseFileError, pending from fs_cli.gen import GenerateError, generate -from fs_cli.git import commit_paths, file_at, has_tag, is_repository +from fs_cli.git import commit_all, commit_paths, file_at, has_tag, head_commit, is_clean, is_repository, remote_branches from fs_cli.images import Image, Images from fs_cli.release import ( DEPRECATED, @@ -68,7 +82,8 @@ ) from onshape_api.exceptions import ApiError from onshape_api.paths.instance_type import InstanceType -from onshape_api.paths.paths import InstancePath, path_to_url +from onshape_api.paths.paths import ElementPath, InstancePath, path_to_url +from onshape_api.types import MergeStrategy # Released tabs are never deleted or recreated (see `load_released`) RELEASED_HINTS = { @@ -365,7 +380,7 @@ def yes_to_deletes(subparser: argparse.ArgumentParser) -> None: ) cots_command.add_argument("query", nargs="?", default="", help="a regular expression matching parts' names or groups, e.g. 'hex shaft'") cots_command.add_argument( - "-l", "--library", default="frc", help="frc, ftc, or mkcad (FRCDesign's FRC, FTC, and MKCad libraries)" + "-l", "--library", default="frc", help="frc, config, or mkcad (FRCDesign's FRC, ConfigLib, and MKCad libraries)" ) cots_command.add_argument("--days", type=int, default=365, help="how many days of usage to count (default: 365)") cots_command.add_argument("-n", "--limit", type=int, default=40, help="how many parts to list (default: 40)") @@ -406,7 +421,7 @@ def yes_to_deletes(subparser: argparse.ArgumentParser) -> None: dry_run(gen_command) release = command( - "release", "release a FeatureScript to the frontend document", targets=False + "release", "release a FeatureScript to the frontend document (a part set's is released by `fs parts SET --release`)", targets=False ) release.add_argument( "script", help="the .fs file or Feature Studio name, e.g. robotFrame" @@ -474,6 +489,106 @@ def yes_to_deletes(subparser: argparse.ArgumentParser) -> None: no_push_tags(sync_versions) dry_run(sync_versions) + parts_command = command( + "parts", + "try or release a part set (see [tool.fs.parts]): Part Studios built from a definition, whose FeatureScript is " + "in the backend document", + targets=False, + ) + parts_command.add_argument("part_set", help="the part set's name in [tool.fs.parts], e.g. fasteners") + action = parts_command.add_mutually_exclusive_group(required=True) + action.add_argument( + "--test", + action="store_true", + help="build the set's Part Studios as ` (TEST)` in your branch's backend workspace, from its FeatureScript " + "as pushed (4-5 API calls each)", + ) + action.add_argument( + "--diagnose", + action="store_true", + help="find which part of the set's configurations Onshape refuses, writing each in stages to a scratch " + "` (DIAGNOSE)` Part Studio in your branch's backend workspace (a call per stage, about 10 for a screw)", + ) + action.add_argument( + "--release", + action="store_true", + help="release the set: version the backend, point the document released to at it, build its Part Studios and " + "write its manifest there, and version it; to its main document (on main only), numbered, recorded, and tagged " + "in git", + ) + parts_command.add_argument( + "--target", + metavar="NAME_OR_URL", + help="with --release, release to another document (one of the set's targets, or a document's url), from any " + "branch, to try it out: not numbered, recorded, or tagged", + ) + parts_bump = parts_command.add_mutually_exclusive_group() + for version_type in VersionType: + parts_bump.add_argument( + f"--{version_type}", + dest="bump", + action="store_const", + const=version_type, + help=f"with --release, release a new {version_type} version", + ) + parts_command.add_argument( + "-d", "--description", default="", help="with --release, a brief, internal-only description of the changes" + ) + parts_command.add_argument("-y", "--yes", action="store_true", help="don't ask to confirm") + no_push_tags(parts_command) + dry_run(parts_command) + + configuration_command = command( + "configuration", + "print a Part Studio's configuration as Onshape stores it, as JSON (1 API call): one made in Onshape shows what " + "a build should write", + targets=False, + ) + configuration_command.add_argument("url", help="the Part Studio's url") + + features_command = command( + "features", + "print a Part Studio's features as Onshape stores them, as JSON (1 API call): one inserted in Onshape shows the " + "namespaces a build should name its feature and enums by", + targets=False, + ) + features_command.add_argument("url", help="the Part Studio's url") + + command( + "releases", + "list the releases pending in releases/, which `fs run-releases` makes once they're merged into main, and " + "check their files (no API calls)", + targets=False, + ) + run_releases_command = command( + "run-releases", + "make each release pending in releases/, on main after `fs sync-main`: run it as `fs release` or `fs parts " + "release` would, delete its file, and commit what it recorded", + targets=False, + ) + no_push_tags(run_releases_command) + dry_run(run_releases_command) + + branches_command = command( + "branches", + "list the workspaces fs made for git branches in the backend document (1 API call), and with --prune delete " + "those whose branch is gone from origin (1 call each)", + targets=False, + ) + branches_command.add_argument("--prune", action="store_true", help="delete the workspaces of branches gone from origin") + branches_command.add_argument("-y", "--yes", action="store_true", help="don't ask to confirm") + + sync_main_command = command( + "sync-main", + "land the main branch in the backend's main workspace by merging, as Onshape protects it: merge the main " + "workspace into the merged branch's (or a new one), push the files there, merge it back, and delete it " + "(about 5 API calls, and 1 per studio pushed)", + targets=False, + ) + sync_main_command.add_argument( + "--branch", help="the branch just merged, whose workspace to land; a workspace made for it when it has none" + ) + release_tags = command( "release-tags", "tag final releases (those whose version is in the frontend document) in git which aren't tagged yet, e.g. robotFrame/v1.3.0", @@ -502,12 +617,13 @@ def main(argv: list[str] | None = None, remote: Remote | None = None) -> int: return OFFLINE_COMMANDS[args.command](config, args) if remote is None: remote = _onshape_remote(args.log) - state = State.load(config.state_path, config.studios_path) + backend = resolve_backend(config, remote, command_access(args)) + state = State.load(backend.state_path, config.studios_path, backend.workspace_id) try: - return COMMANDS[args.command](Workspace(config, state, remote), args) + return COMMANDS[args.command](Workspace(config, state, remote, instance=backend.instance), args) finally: state.save() - except (ConfigError, UsageError, GenerateError, UiError) as error: + except (ConfigError, UsageError, GenerateError, UiError, BranchError) as error: print(f"fs: {error}", file=sys.stderr) return 2 except ApiError as error: @@ -518,6 +634,27 @@ def main(argv: list[str] | None = None, remote: Remote | None = None) -> int: return 130 +# Commands which release, or land main, so run only on the main branch (see fs_cli/branches.py) +MAIN_COMMANDS = {"release", "deprecate", "sync-versions", "release-tags", "sync-main", "run-releases"} +# Commands which write the backend workspace, so make their branch's +WRITE_COMMANDS = {"push", "sync", "tabs"} + + +def command_access(args: argparse.Namespace) -> Access: + if args.command == "parts" and args.release: + # A target's release is tried from any branch, from its workspace + return Access.READ if args.target else Access.MAIN + if args.command in MAIN_COMMANDS: + return Access.MAIN + if ( + args.command in WRITE_COMMANDS + or (args.command == "parts" and (args.test or args.diagnose)) + or (args.command == "update-std" and getattr(args, "push", False)) + ): + return Access.WRITE + return Access.READ + + def _onshape_remote(log: bool) -> OnshapeRemote: from onshape_api.api.key_api import make_key_api @@ -533,6 +670,129 @@ def _onshape_remote(log: bool) -> OnshapeRemote: # Syncing +def releases(config: Config, args: argparse.Namespace) -> int: + try: + files = pending(config) + except ReleaseFileError as error: + raise UsageError(str(error)) from error + if not files: + print("No releases pending.") + for file in files: + kind = "part set" if file.part_set else "FeatureScript" + bump = file.bump or "first" + print(f"{file.path.relative_to(config.root).as_posix()}: {kind} {file.target}, {bump} release") + return 0 + + +def run_releases(workspace: Workspace, args: argparse.Namespace) -> int: + config = workspace.config + try: + files = pending(config) + except ReleaseFileError as error: + raise UsageError(str(error)) from error + if not files: + print("No releases pending.") + return 0 + if not args.dry_run and not is_clean(config.root): + raise UsageError("Commit or stash your changes first: each release is committed as it's made.") + versions = workspace.remote.versions(workspace.instance) + for file in files: + made = [version.name for version in versions if version.description.endswith(file.marker)] + if made: + raise UsageError( + f"{file.path.name} already made {', '.join(made)}, so it ran, whole or partway: check what it made in " + "Onshape, finish it by hand if need be, then delete the file." + ) + for file in files: + print(f"Running {RELEASES_FOLDER}/{file.path.name}:") + common = {"bump": file.bump, "description": file.described, "yes": True, "dry_run": args.dry_run, "no_push_tags": args.no_push_tags} + if file.script: + release(workspace, argparse.Namespace(script=file.script, beta=file.beta, publish=file.publish, **common)) + else: + parts( + workspace, + argparse.Namespace( + part_set=file.part_set, test=False, diagnose=False, release=True, target=None, **common + ), + ) + if not args.dry_run: + file.path.unlink() + # A release marks what it released in fs-studios.json + workspace.state.save() + commit_all(config.root, f"Release {file.target} ({RELEASES_FOLDER}/{file.path.name})") + return 0 + + +def branches(workspace: Workspace, args: argparse.Namespace) -> int: + config = workspace.config + if config.main_branch is None: + raise UsageError("Branches get workspaces of their own only with main_branch set in [tool.fs].") + on_origin = remote_branches(config.root) + if on_origin is None: + raise UsageError("Can't reach origin to see which branches are gone.") + made = branch_workspaces(config, workspace.remote) + # A sync's is left by one which failed partway, and finished by running it again + gone = [each for each in made if each.name not in on_origin and not each.name.startswith("sync ")] + if not made: + print("No branch has a workspace.") + for each in made: + print(f"{each.name}{' (gone from origin)' if each in gone else ''}") + if not args.prune or not gone: + return 0 + if not args.yes: + confirm(f"This deletes the workspaces of {len(gone)} branch(es) gone from origin, and their history.") + for each in gone: + workspace.remote.delete_workspace(InstancePath(config.backend.document_id, each.id)) + config.state_path_for(each.name).unlink(missing_ok=True) + print(f"Deleted {each.name}'s workspace.") + return 0 + + +def sync_main(workspace: Workspace, args: argparse.Namespace) -> int: + config = workspace.config + if config.main_branch is None: + raise UsageError("`fs sync-main` lands the main branch by merging, which needs main_branch in [tool.fs].") + if not is_clean(config.root): + raise UsageError(f"Commit or stash your changes first: this lands {config.main_branch} as committed.") + remote = workspace.remote + main = config.backend + source = find_workspace(config, remote, args.branch) if args.branch else None + if source is None: + name = f"sync {(head_commit(config.root) or '')[:7]}" + # Left by a sync that failed partway, which this finishes + source = find_workspace(config, remote, name) or create_workspace(config, remote, name) + instance = InstancePath(main.document_id, source.id) + print(f"Merging the main workspace into {source.name}...") + merge(remote, instance, main.instance_id, MergeStrategy.KEEP) + start_state(config, source.name, source.id) + state = State.load(config.state_path_for(source.name), config.studios_path, source.id) + try: + # Git is what main holds, so its files go over whatever the workspace has + pushed = push( + Workspace(config, state, remote, instance=instance), + argparse.Namespace(targets=[], force=True, yes=True, dry_run=False, no_commit=False), + ) + finally: + state.save() + # The main workspace's state, saved last, holds which file each tab is: the push may have made tabs + workspace.state.studios = { + element_id: dataclasses.replace(workspace.state.studios.get(element_id, studio), file=studio.file) + for element_id, studio in state.studios.items() + } + workspace.state.images = { + element_id: dataclasses.replace(workspace.state.images.get(element_id, image), file=image.file) + for element_id, image in state.images.items() + } + if pushed != 0: + raise UsageError(f"Pushing to {source.name} failed, so the main workspace is unchanged; run this again.") + print(f"Merging {source.name} into the main workspace...") + merge(remote, main, source.id, MergeStrategy.REPLACE) + remote.delete_workspace(instance) + state.path.unlink(missing_ok=True) + print(f"Landed {config.main_branch} in the main workspace, and deleted {source.name}.") + return 0 + + def push(workspace: Workspace, args: argparse.Namespace) -> int: targets = workspace.resolve_targets(args.targets) # Studios unchanged locally aren't pushed (except with --force, over changes in Onshape), so they aren't @@ -1239,7 +1499,7 @@ def gen(config: Config, args: argparse.Namespace) -> int: # Imports need a version, which is only known for studios synced on this machine synced = { entry.file: (element_id, entry.microversion_id) - for element_id, entry in State.load(config.state_path, config.studios_path).studios.items() + for element_id, entry in State.load(config.state_path_for(branch_name(config)), config.studios_path).studios.items() if entry.microversion_id } generated = generate(config.code_dir, StdMetadata.load(config.std_dir).number, synced) @@ -1687,10 +1947,103 @@ def _display_path(path: pathlib.Path) -> str: # Commands which don't need Onshape # Offline commands which change fs-studios.json or .fs-state.json, so hold their lock (see `state_lock`) +def configuration(workspace: Workspace, args: argparse.Namespace) -> int: + from onshape_api.endpoints.elements import get_configuration + from onshape_api.paths.paths import url_to_element_path + + assert isinstance(workspace.remote, OnshapeRemote) + print(json.dumps(get_configuration(workspace.remote.api, url_to_element_path(args.url)), indent=1)) + return 0 + + +def features(workspace: Workspace, args: argparse.Namespace) -> int: + from onshape_api.endpoints.part_studios import get_features + from onshape_api.paths.paths import url_to_element_path + + assert isinstance(workspace.remote, OnshapeRemote) + print(json.dumps(get_features(workspace.remote.api, url_to_element_path(args.url)), indent=1)) + return 0 + + +def parts(workspace: Workspace, args: argparse.Namespace) -> int: + from fs_cli.parts import plan_part_release, run_diagnose, run_part_release, run_test + + part_set = workspace.config.find_part_set(args.part_set) + if not args.release and (args.target or args.bump or args.description): + raise UsageError("--target, --major, --minor, --patch, and --description go with --release.") + if args.test: + if not args.yes: + confirm( + f"This builds the {part_set.name} Part Studios in the backend document, named ` (TEST)`, " + "replacing any configuration they have." + ) + for studio, built in run_test(workspace, part_set): + url = path_to_url(ElementPath.from_path(workspace.instance, built.element_id)) + print(f"{studio.tab_name} ({'created' if built.created else 'updated'}, {built.status}): {url}") + return 0 + + if args.diagnose: + if not args.yes: + confirm( + f"This writes the {part_set.name} configurations in stages to ` (DIAGNOSE)` Part Studios in the " + "backend document, stopping at the first stage Onshape refuses." + ) + for studio, diagnosis in run_diagnose(workspace, part_set): + url = path_to_url(ElementPath.from_path(workspace.instance, diagnosis.element_id)) + print(f"{studio.tab_name}: {url}") + if diagnosis.features is not None: + print(f" Its (TEST) tab's features: {', '.join(diagnosis.features) or 'none'}") + for stage in diagnosis.accepted: + print(f" accepted {stage}") + if diagnosis.refused is not None: + stage, error = diagnosis.refused + print(f" refused {stage}: {error}") + return 0 + + plan = plan_part_release(workspace, part_set, args.bump, args.target) + label = plan.label + if plan.released: + previous = plan.previous.name if plan.previous else "none" + print(f"Releasing the {part_set.name} part set as {plan.version_name} (previous release: {previous})") + else: + print(f"Releasing the {part_set.name} part set to {args.target} as {plan.version_name}") + tabs = ", ".join(studio.tab_name for _, studios in plan.definitions for studio in studios) + steps = [ + f"Create version {plan.version_name} in the backend document", + f"Point {plan.studio.name} in the {label} at that version", + f"Build {tabs} in the {label}, and write its manifest there", + ] + if plan.released is None: + steps.append(f"Create version {plan.version_name} in the {label}") + else: + steps.append( + "Record where its Part Studios are beside " + + ", ".join(definition.name for definition, _ in plan.definitions) + + ", write their exports again, and tag the release" + ) + for number, step in enumerate(steps, 1): + print(f" {number}. {step}") + if args.dry_run: + return 0 + if not args.yes: + confirm("Versions can't be deleted.") + run_part_release(workspace, plan, args.description) + print(f"Released {plan.version_name}.") + if plan.released is None: + return 0 + print("Version the main document in Onshape when you want FRCDesign to load it.") + print("Commit the recorded locations and exports.") + if is_repository(workspace.config.root): + assert plan.studio.local_code is not None + tag_release(workspace, plan.studio.path, plan.released, plan.studio.local_code, not args.no_push_tags) + return 0 + + STATE_COMMANDS = {"mv", "unlink", "released"} OFFLINE_COMMANDS = { "check": check, + "releases": releases, "format": format_files, "mv": mv, "ui": ui, @@ -1726,9 +2079,15 @@ def _display_path(path: pathlib.Path) -> str: "deprecate": deprecate, "sync-versions": sync_versions, "release-tags": release_tags, + "sync-main": sync_main, + "branches": branches, + "run-releases": run_releases, "tabs": tabs, "link": link, "released": detect_released, + "parts": parts, + "configuration": configuration, + "features": features, } @@ -1802,7 +2161,7 @@ def _exists_locally(item: Studio | Image) -> bool: def check_path_imports(workspace: Workspace, studios: list[Studio], images: list[str] = []) -> None: - problems = workspace.path_import_problems(studios, images) + problems = workspace.path_import_problems(studios, images) + workspace.stale_import_problems(studios) if problems: raise UsageError("Can't push:\n " + "\n ".join(problems)) diff --git a/fs_cli/config.py b/fs_cli/config.py index 12873f99..12872de3 100644 --- a/fs_cli/config.py +++ b/fs_cli/config.py @@ -4,6 +4,7 @@ import dataclasses import pathlib +import re import tomllib from onshape_api.paths.instance_type import InstanceType @@ -18,6 +19,46 @@ class ConfigError(Exception): pass +@dataclasses.dataclass +class PartSet: + """A set of FeatureScript-backed parts, like FRCDesign's fasteners: Part Studios built from a definition, whose + FeatureScript only they use (see docs/parts.md). Its FeatureScript is in the backend document like any other, but it's + tried and released by `fs parts`, not `fs release`: into its main document, as Part Studios people insert. + + Attributes: + name: Its key in [tool.fs.parts], which commands name it by, like `fasteners`. + title: What its versions are named by, like `Fasteners` (`Fasteners - v1.2.0`). + folder: The folder in the code folder holding its FeatureScript and definition. + main_document_id: The FRCDesignLib document its releases go to. + definition: The file in `folder` configuring its Part Studios, where the folder holds another set's too; every + definition in the folder otherwise. + targets: Other documents it can be released to by name, to try a release out, like a library loaded locally: + `[tool.fs.parts..targets]`, each name a document's url. + """ + + name: str + title: str + folder: str + main_document_id: str + targets: dict[str, str] = dataclasses.field(default_factory=dict) + definition: str | None = None + + def target_document_id(self, target: str) -> str: + """The document a target names: one of `targets`, or a document's url.""" + url = self.targets.get(target, target) + found = _DOCUMENT_URL.search(url) + if found is None: + names = ", ".join(self.targets) or "none" + raise ConfigError(f"{target} is neither a target of {self.name} ({names}) nor a document's url.") + if found.group(1) == self.main_document_id: + raise ConfigError(f"{target} is {self.name}'s main document, which only its releases go to.") + return found.group(1) + + def holds(self, path: str) -> bool: + """Whether the file at `path` (relative to the code folder) is the set's.""" + return path.startswith(self.folder + "/") + + @dataclasses.dataclass class Config: """ @@ -28,7 +69,10 @@ class Config: backend: The workspace holding the source of every FeatureScript. frontend: The public workspace released FeatureScripts are published to. frontend_beta: The workspace beta releases are published to. + parts: Part sets, released by `fs parts` rather than `fs release`. github: The repo's GitHub url, which released FeatureScripts link to as their source. + main_branch: The git branch the backend's main workspace holds, when each other branch has a workspace of + its own (see docs/fs-cli.md#branches); None when every branch shares the main workspace. """ root: pathlib.Path @@ -37,13 +81,32 @@ class Config: backend: InstancePath frontend: InstancePath | None = None frontend_beta: InstancePath | None = None + parts: tuple[PartSet, ...] = () github: str | None = None + main_branch: str | None = None + + def find_part_set(self, name: str) -> PartSet: + found = next((part_set for part_set in self.parts if part_set.name == name), None) + if found is None: + names = ", ".join(part_set.name for part_set in self.parts) or "none" + raise ConfigError(f"No part set named {name} in [tool.fs.parts] (there's {names}).") + return found + + def part_set_for(self, path: str) -> PartSet | None: + """The part set holding a file (relative to the code folder); None for user-facing FeatureScript.""" + return next((part_set for part_set in self.parts if part_set.holds(path)), None) @property def state_path(self) -> pathlib.Path: """The local (untracked) record of when each Feature Studio was last synced.""" return self.root / STATE_FILE + def state_path_for(self, branch: str | None) -> pathlib.Path: + """The state of a git branch's workspace, which syncs apart from the main workspace's (see `main_branch`).""" + if self.main_branch is None or branch is None or branch == self.main_branch: + return self.state_path + return self.root / STATE_FILE.replace(".json", "." + re.sub(r"[^A-Za-z0-9._-]", "_", branch) + ".json") + @property def studios_path(self) -> pathlib.Path: """The checked in map of element ids to files in the code folder.""" @@ -79,10 +142,35 @@ def parse_config(root: pathlib.Path, data: dict) -> Config: frontend_beta=( _workspace(data, "frontend_beta") if "frontend_beta" in data else None ), + parts=tuple(_part_set(name, entry) for name, entry in data.get("parts", {}).items()), github=data["github"].rstrip("/") if "github" in data else None, + main_branch=data.get("main_branch"), ) +_DOCUMENT_URL = re.compile(r"/documents/([0-9a-f]{24})(?:/|$)") + + +def _part_set(name: str, entry: dict) -> PartSet: + where = f"[tool.fs.parts.{name}]" + main = _DOCUMENT_URL.search(str(entry.get("main", ""))) + if main is None: + raise ConfigError(f"{where} main must be its main document's url.") + folder = entry.get("folder") + if not isinstance(folder, str) or not folder.strip("/"): + raise ConfigError(f"{where} folder must name the folder holding its FeatureScript.") + title = entry.get("title") + if not isinstance(title, str) or not title: + raise ConfigError(f"{where} title must name its versions, like Fasteners.") + targets = entry.get("targets", {}) + if not isinstance(targets, dict) or not all(_DOCUMENT_URL.search(str(url)) for url in targets.values()): + raise ConfigError(f"{where} targets must map names to documents' urls.") + definition = entry.get("definition") + if definition is not None and (not isinstance(definition, str) or not definition.endswith(".py") or "/" in definition): + raise ConfigError(f"{where} definition must name a .py file in its folder, like fastenerTables.py.") + return PartSet(name, title, folder.strip("/"), main.group(1), dict(targets), definition) + + def _workspace(data: dict, key: str) -> InstancePath: url = data[key] try: diff --git a/fs_cli/configured_studios.py b/fs_cli/configured_studios.py new file mode 100644 index 00000000..dc0b873d --- /dev/null +++ b/fs_cli/configured_studios.py @@ -0,0 +1,815 @@ +"""Part Studios which expose a feature through their configuration, for definitions in featurescripts/ (see +fasteners/fastenerTables.py). + +A configured studio holds one instance of a feature, and a configuration input for each of its parameters: each input +configures its parameter (a configured parameter, `BTMParameterConfigured`), with one value per option, or per state +of a checkbox. A List input's options can each be shown only for some combinations of earlier inputs, which is how a +lookup table is laid out as a configuration (`LookupTable`): Length shows only the lengths the chosen vendor makes in +the chosen size and head. A whole input can be shown only for some, too; hidden, it takes its default. An input of one +option is fixed: it's left out of the configuration, and its parameter set to that option when the feature's inserted. + +The definition is the source of both sides: the feature's enums and data (`fs gen`), and the configuration +(`fs parts`, see docs/parts.md), so they can't drift apart. Option ids are FeatureScript identifiers, since Onshape makes each +List input an enum (`_conf`) whose values are its option ids. +""" + +from __future__ import annotations + +import contextlib +import dataclasses +import json +import pathlib +import re +from typing import Literal, Mapping, Sequence + +_IDENTIFIER = re.compile(r"^[A-Za-z_][A-Za-z0-9_]*$") + +# Each, the options of earlier inputs it shows with: shown when any one matches +Combinations = Sequence[Mapping[str, str]] + + +@dataclasses.dataclass +class Option: + """An option of a List input. + + Attributes: + id: Its id: a FeatureScript identifier, like `NO_10_32`. + name: The name shown, like `#10-32`. + value: The configured parameter's value for it: an enum value's name for an enum parameter, or an expression + for a quantity, like `0.5 in`. + shown_when: The combinations of earlier inputs' options which show it, like `[{"size": "NO_10_32"}]`; every + combination shows it when None. + """ + + id: str + name: str + value: str + shown_when: Combinations | None = None + + +@dataclasses.dataclass +class Input: + """A configuration input, configuring one of the feature's parameters. + + Attributes: + id: The input's id, which configurations are encoded with (`size=NO_10_32;washer=true`). + parameter: The feature parameter it configures. + kind: A List of `options` configuring an enum (`enum_name` its type), a length, or a boolean (`switch`: options + `false` and `true`, which unlike a checkbox's can show by any number of conditions), or a checkbox + configuring a boolean. + shown_when: The combinations of earlier inputs' options which show it, as an option's are; always shown when + None. A combination names an input only where that input and its option show: Onshape and FRCDesign read + a hidden input's value differently. + """ + + id: str + name: str + parameter: str + options: Sequence[Option] = () + kind: Literal["enum", "length", "switch", "boolean"] = "enum" + enum_name: str | None = None + default: str | None = None + shown_when: Combinations | None = None + + def __post_init__(self) -> None: + if not _IDENTIFIER.match(self.id): + raise ValueError(f"Input {self.id!r} isn't a FeatureScript identifier") + if self.kind == "boolean": + if self.options or self.default not in (None, "true", "false"): + raise ValueError(f"Input {self.id} is a checkbox: it has no options, and defaults to true or false") + return + ids = [option.id for option in self.options] + if not ids: + raise ValueError(f"Input {self.id} has no options") + if len(set(ids)) != len(ids): + raise ValueError(f"Input {self.id} has duplicate options: {ids}") + for id in ids: + if not _IDENTIFIER.match(id): + raise ValueError(f"Input {self.id}: {id!r} isn't a FeatureScript identifier") + if self.kind == "switch" and not set(ids) <= {"false", "true"}: + raise ValueError(f"Input {self.id} is a switch, so its options are false and true") + if self.kind == "enum" and self.enum_name is None: + raise ValueError(f"Input {self.id} configures an enum, so it needs its enum_name") + if self.default is not None and self.default not in ids: + raise ValueError(f"Input {self.id} has default {self.default!r}, which isn't one of {ids}") + if self.fixed and (self.shown_when is not None or self.options[0].shown_when is not None): + raise ValueError(f"Input {self.id} has one option, so it's fixed, and shown nowhere") + + @property + def default_option(self) -> str: + if self.kind == "boolean": + return self.default or "false" + return self.default or self.options[0].id + + def option_ids(self) -> set[str]: + return {option.id for option in self.options} + + @property + def fixed(self) -> bool: + """Whether it's a List of one option, which the configuration leaves out.""" + return self.kind != "boolean" and len(self.options) == 1 + + +@dataclasses.dataclass +class ConfiguredStudio: + """A Part Studio exposing `feature` (the constant `defineFeature` is exported as) through `inputs`. + + Attributes: + name: Its key in the definition, like `screw`. + tab: Its tab's name, which `build` finds it by; `name` capitalized when None. + factor_first: Inputs to factor visibility conditions by before the rest, which are in order: a lookup + table's conditions can be far smaller factored by one with few values, like a finish. + mate_connector: The id its feature gives the mate connector it makes, under the feature's own. A fasten mate + names it `.`, and Onshape's API shows no mate connector a feature makes, so the + manifest says it. + """ + + name: str + feature: str + inputs: Sequence[Input] + tab: str | None = None + factor_first: Sequence[str] = () + mate_connector: str | None = None + + @property + def tab_name(self) -> str: + return self.tab or self.name.capitalize() + + def __post_init__(self) -> None: + defaults: dict[str, str] = {} + earlier: dict[str, Input] = {} + for input in self.inputs: + shown_by = [(input.id, input.shown_when)] + [(f"{input.id}'s {option.id}", option.shown_when) for option in input.options] + for what, shown_when in shown_by: + for combination in shown_when or (): + for id, value in combination.items(): + parent = earlier.get(id) + if parent is None: + raise ValueError(f"{self.name}: {what} shows by {id}, which isn't before it") + if parent.kind == "boolean" or value not in parent.option_ids(): + raise ValueError(f"{self.name}: {what} shows with unknown {id}={value}") + if parent.fixed: + raise ValueError(f"{self.name}: {what} shows by {id}, which is fixed") + if not input_shows(parent, combination) or not shows(_option(parent, value), combination): + raise ValueError(f"{self.name}: {what} shows by {id}={value}, which isn't shown there") + if input.kind == "boolean" and input.shown_when is not None: + count = len(_products(input.shown_when, self._factor_order())) + if count > 1: + raise ValueError( + f"{self.name}: checkbox {input.id} needs {count} conditions to show where it does, and Onshape " + "gives an input one (an AND of inputs); a List's options take any number" + ) + # With none of its options shown, a List is hidden + shown = input.kind != "boolean" and any(shows(option, defaults) for option in input.options) + if shown and input_shows(input, defaults): + default = next(option for option in input.options if option.id == input.default_option) + if not shows(default, defaults): + raise ValueError(f"{self.name}: {input.id}'s default isn't shown with the other inputs' defaults") + defaults[input.id] = input.default_option + earlier[input.id] = input + + def problems(self) -> list[str]: + """What breaks a rule of docs/fs-cli.md's "Configured Part Studios" in the configuration as it's written, + beyond what constructing the studio checks: each rule an AND of earlier inputs each one of some of their + options, every option of an input with rules controlled by one, and no input shown with one option.""" + found: list[str] = [] + parameters = self.configuration_body()["configurationParameters"] + options = {parameter["parameterId"]: [option["option"] for option in parameter.get("options", [])] for parameter in parameters} + earlier: set[str] = set() + for parameter in parameters: + id = parameter["parameterId"] + rules = parameter.get("enumOptionVisibilityConditions", {}).get("visibilityConditions", []) + conditions = [rule["condition"] for rule in rules] + if "visibilityCondition" in parameter: + conditions.append(parameter["visibilityCondition"]) + for condition in conditions: + found += [f"{self.name}: {id}: {problem}" for problem in _condition_problems(condition, earlier, options)] + controlled = [option for rule in rules for option in rule["controlledOptions"]] + if rules and set(controlled) != set(options[id]): + found.append(f"{self.name}: {id}: options no rule controls, which Onshape hides: {sorted(set(options[id]) - set(controlled))}") + earlier.add(id) + single: set[str] = set() + for combination in self.combinations(): + for index, input in enumerate(self.configured_inputs()): + if input.kind == "boolean" or not input_shows(input, combination): + continue + shown = [option.id for option in input.options if shows(option, combination)] + ids = [each.id for each in self.configured_inputs()[:index]] + before = {id: value for id, value in combination.items() if id in ids} + problem = f"{self.name}: {input.id} shows one option, {shown[0] if shown else ''}, with {before}" + if len(shown) == 1 and problem not in single: + single.add(problem) + found.append(problem) + return found + + def combinations(self) -> list[dict[str, str]]: + """Every combination of its inputs' options the configuration shows, earliest input first: each a choice + of every input it shows, with each List's option one shown with the choices before it. A hidden input is + left out, as FRCDesign enumerates it.""" + combinations: list[dict[str, str]] = [{}] + for input in self.configured_inputs(): + choices = ["false", "true"] if input.kind == "boolean" else [option.id for option in input.options] + next: list[dict[str, str]] = [] + for combination in combinations: + shown = [ + choice + for choice in choices + if input.kind == "boolean" or shows(_option(input, choice), combination) + ] + # Hidden, or with no option shown, it's left at its default + if not input_shows(input, combination) or not shown: + next.append(combination) + continue + next.extend({**combination, input.id: choice} for choice in shown) + combinations = next + return combinations + + def configured_inputs(self) -> list[Input]: + """Its inputs but the fixed ones, which the configuration leaves out.""" + return [input for input in self.inputs if not input.fixed] + + def defaults(self) -> dict[str, str]: + return {input.id: input.default_option for input in self.configured_inputs()} + + def manifest(self) -> dict: + """The studio as FRCDesign reads it: its feature, and its configuration as Onshape answers it, which FRCDesign + parses as it parses any configuration.""" + return { + "feature": self.feature, + **({"mateConnector": self.mate_connector} if self.mate_connector else {}), + "configuration": self.configuration_body(), + } + + def _factor_order(self) -> list[str]: + return [*self.factor_first, *(input.id for input in self.inputs if input.id not in self.factor_first)] + + def configuration_body(self) -> dict: + """The body of `POST /elements/.../configuration` setting the studio's inputs.""" + return { + "btType": "BTConfigurationUpdateCall-2933", + "configurationParameters": [ + _configuration_parameter(input, self._factor_order()) for input in self.configured_inputs() + ], + } + + def default_parameters(self, namespace: str = "") -> list[dict]: + """The feature's parameters, each set to its input's default, a fixed input's its one option; `namespace` as for + `configured_parameters`.""" + return [_default_parameter(input, namespace) for input in self.inputs] + + def configured_parameters(self, namespace: str = "") -> list[dict]: + """The feature's parameters, each configured by its input. `namespace` is the feature's (see + `feature_namespace`), which its enums' values are named in too, since they're defined in its FeatureScript.""" + return [_configured_parameter(input, namespace) for input in self.configured_inputs()] + + +class LookupTable: + """What's made, as a configuration offers it: each thing made a combination of its inputs' options (`made`), the + inputs `ids` in order. + + An input shows where more than one of its options is made with the choices shown before it, offering those, and is + hidden where only one is: so nothing later shows by it there, and the feature resolves its parameter to the one + made. An input never shown is fixed. A configuration of the table is the choices it shows (`shown`). + """ + + def __init__(self, ids: Sequence[str], made: Sequence[Sequence[str]]) -> None: + self.ids = list(ids) + # For each input, the options made in each context: the choices shown before it + self._made_in: list[dict[tuple, list[str]]] = [] + contexts: dict[tuple, tuple] = {tuple(key): () for key in made} + for index, id in enumerate(self.ids): + made_in: dict[tuple, list[str]] = {} + for key, context in contexts.items(): + values = made_in.setdefault(context, []) + if key[index] not in values: + values.append(key[index]) + self._made_in.append(made_in) + contexts = { + key: context + ((id, key[index]),) if len(made_in[context]) > 1 else context + for key, context in contexts.items() + } + self._shown = contexts + + def shown(self, key: Sequence[str]) -> dict[str, str]: + """The choices a configuration shows to make `key`.""" + return dict(self._shown[tuple(key)]) + + def input(self, spec: Input) -> Input: + """`spec`, one of the table's inputs with every option it could offer, as the configuration offers what's + made: each option shown where it's made beside another, the rest dropped. Never shown, it's fixed to its + default, or the first option made where that isn't.""" + made_in = self._made_in[self.ids.index(spec.id)] + made = {value for values in made_in.values() for value in values} + if not made <= spec.option_ids(): + raise ValueError(f"Input {spec.id} has no option for {sorted(made - spec.option_ids())}") + shown_in: dict[str, list[dict[str, str]]] = {} + for context, values in made_in.items(): + if len(values) > 1: + for value in values: + shown_in.setdefault(value, []).append(dict(context)) + options = [ + dataclasses.replace(option, shown_when=None if len(shown_in[option.id]) == len(made_in) else shown_in[option.id]) + for option in spec.options + if option.id in shown_in + ] + if options: + return dataclasses.replace(spec, options=options) + fixed = spec.default if spec.default in made else next(option.id for option in spec.options if option.id in made) + return dataclasses.replace(spec, options=[_option(spec, fixed)], default=None) + + +def _option(input: Input, id: str) -> Option: + return next(option for option in input.options if option.id == id) + + +def shows(option: Option, selection: Mapping[str, str]) -> bool: + """Whether an option is shown while earlier inputs are set to `selection`.""" + return _matches(option.shown_when, selection) + + +def input_shows(input: Input, selection: Mapping[str, str]) -> bool: + """Whether an input is shown while earlier inputs are set to `selection`.""" + return _matches(input.shown_when, selection) + + +def _matches(shown_when: Combinations | None, selection: Mapping[str, str]) -> bool: + if shown_when is None: + return True + return any(all(selection.get(id) == value for id, value in combination.items()) for combination in shown_when) + + +def _configuration_parameter(input: Input, order: Sequence[str]) -> dict: + if input.kind == "boolean": + visibility = {} + if input.shown_when is not None: + [product] = _products(input.shown_when, order) + visibility = {"visibilityCondition": _product_condition(product)} + return { + "btType": "BTMConfigurationParameterBoolean-2550", + "parameterId": input.id, + "parameterName": input.name, + "defaultValue": input.default_option == "true", + **visibility, + } + parameter = { + "btType": "BTMConfigurationParameterEnum-105", + "parameterId": input.id, + "parameterName": input.name, + "enumName": f"{input.id}_conf", + "namespace": "", + "defaultValue": input.default_option, + "options": [ + {"btType": "BTMEnumOption-592", "option": option.id, "optionName": option.name} + for option in input.options + ], + } + conditions = _option_visibility(input, order) + if conditions: + parameter["enumOptionVisibilityConditions"] = { + "btType": "BTEnumOptionVisibilityConditionList-2936", + "visibilityConditions": conditions, + } + return parameter + + +# Onshape takes a condition only as its UI makes one: an AND of inputs, each one of some values +Product = dict[str, list[str]] + + +def _option_visibility(input: Input, order: Sequence[str]) -> list[dict]: + """A rule per product, controlling the options it shows, and one showing the rest always, as Onshape's UI ends its + rules: an option shows while a rule controlling it holds. A List with none of its options shown is hidden, so a + List's own visibility is folded into its options'.""" + shown = [{}] if input.shown_when is None else _products(input.shown_when, order) + rules: dict[str, tuple[Product, list[str]]] = {} + always: list[str] = [] + for option in input.options: + own = [{}] if option.shown_when is None else _products(option.shown_when, order) + products = [product for a in own for b in shown if (product := _intersect(a, b)) is not None] + if not products: + raise ValueError(f"Input {input.id}'s {option.id} is never shown") + if any(not product for product in products): + always.append(option.id) + continue + for product in products: + rules.setdefault(repr(product), (product, []))[1].append(option.id) + if not rules: + return [] + return [ + *(_option_rule(options, _product_condition(product)) for product, options in rules.values()), + *([_option_rule(always, ALWAYS_SHOWN)] if always else []), + ] + + +def _condition_problems(condition: dict, earlier: set[str], options: Mapping[str, list[str]]) -> list[str]: + """Why Onshape would refuse a condition: it takes only an AND of inputs before the one it's on, each an OR of + some of their options, or the rule showing the rest always.""" + if condition == ALWAYS_SHOWN: + return [] + if condition.get("btType") != "BTParameterVisibilityLogical-178" or condition.get("operation") != "AND": + return ["a condition isn't an AND"] + found = [] + named = [] + for child in condition.get("children", []): + if child.get("btType") != "BTParameterVisibilityLogical-178" or child.get("operation") != "OR": + found.append("an AND holds something other than an OR") + continue + equals = child.get("children", []) + ids = {equal.get("parameterId") for equal in equals} + if not equals or len(ids) != 1 or any(equal.get("btType") != "BTParameterVisibilityOnEqual-180" for equal in equals): + found.append("an OR isn't of one input's options") + continue + [id] = ids + named.append(id) + if id not in earlier: + found.append(f"a condition names {id}, which isn't a configured input before it") + continue + values = [equal.get("value") for equal in equals] + unknown = [value for value in values if value not in options[id]] + if unknown or len(set(values)) != len(values): + found.append(f"a condition names {id}'s options {values}, not each one of its options once") + if not named: + found.append("a condition names no input") + if len(set(named)) != len(named): + found.append(f"a condition names an input twice: {named}") + return found + + +ALWAYS_SHOWN = { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [{"btType": "BTParameterVisibilityAlwaysShown-5487"}], +} + + +def _option_rule(options: list[str], condition: dict) -> dict: + return {"btType": "BTEnumOptionVisibilityForList-1613", "controlledOptions": options, "condition": condition} + + +def _products(combinations: Combinations, order: Sequence[str]) -> list[Product]: + """Products matching exactly the combinations, factored by input in `order`: grouped by their first input's + value, and values whose rest is the same share their products. `[{}]` when every combination is.""" + ids = [id for id in order if any(id in combination for combination in combinations)] + return _factor(combinations, ids) + + +def _factor(combinations: Combinations, ids: Sequence[str]) -> list[Product]: + if not ids or any(not combination for combination in combinations): + return [{}] + first, rest = ids[0], ids[1:] + by_value: dict[str, list[dict[str, str]]] = {} + # Those not naming it match any of its values + unnamed: list[Mapping[str, str]] = [] + for combination in combinations: + if first not in combination: + unnamed.append(combination) + continue + remainder = {id: value for id, value in combination.items() if id != first} + by_value.setdefault(combination[first], []).append(remainder) + branches: dict[str, tuple[list[str], list[Product]]] = {} + for value, remainders in by_value.items(): + sub = _factor(remainders, rest) + branches.setdefault(repr(sub), ([], sub))[0].append(value) + named = [{first: values, **product} for values, sub in branches.values() for product in sub] + return named + (_factor(unnamed, rest) if unnamed else []) + + +def _intersect(a: Product, b: Product) -> Product | None: + """What both products match; None when nothing does.""" + both = dict(a) + for id, values in b.items(): + if id in both: + values = [value for value in both[id] if value in values] + if not values: + return None + both[id] = values + return both + + +def _product_condition(product: Product) -> dict: + return { + "btType": "BTParameterVisibilityLogical-178", + "operation": "AND", + "children": [ + { + "btType": "BTParameterVisibilityLogical-178", + "operation": "OR", + "children": [ + {"btType": "BTParameterVisibilityOnEqual-180", "parameterId": id, "value": value, "inArray": False} + for value in values + ], + } + for id, values in product.items() + ], + } + + +def _configured_parameter(input: Input, namespace: str = "") -> dict: + """Configured by its input. Onshape refuses a configured value naming the parameter, which only the whole names.""" + if input.kind == "boolean": + values = [ + { + "btType": "BTMConfiguredValueByBoolean-1501", + "booleanValue": state, + "value": {"btType": "BTMParameterBoolean-144", "parameterId": "", "value": state}, + } + for state in (False, True) + ] + else: + values = [ + { + "btType": "BTMConfiguredValueByEnum-1923", + "enumName": f"{input.id}_conf", + "namespace": "", + "enumValue": option.id, + "value": {**_value(input, option, namespace), "parameterId": ""}, + } + for option in input.options + ] + return { + "btType": "BTMParameterConfigured-2222", + "parameterId": input.parameter, + "configurationParameterId": input.id, + "values": values, + } + + +def _default_parameter(input: Input, namespace: str) -> dict: + if input.kind == "boolean": + return {"btType": "BTMParameterBoolean-144", "parameterId": input.parameter, "value": input.default_option == "true"} + return _value(input, _option(input, input.default_option), namespace) + + +def _value(input: Input, option: Option, namespace: str = "") -> dict: + if input.kind == "enum": + return { + "btType": "BTMParameterEnum-145", + "parameterId": input.parameter, + "namespace": namespace, + "enumName": input.enum_name, + "value": option.value, + } + if input.kind == "switch": + return {"btType": "BTMParameterBoolean-144", "parameterId": input.parameter, "value": option.id == "true"} + return {"btType": "BTMParameterQuantity-147", "parameterId": input.parameter, "expression": option.value} + + +class ConfigureError(Exception): + pass + + +def configured_studios(definition: dict) -> list[ConfiguredStudio]: + """A definition's ConfiguredStudios, from its STUDIOS (nested in maps as deep as it likes).""" + found: list[ConfiguredStudio] = [] + + def search(value: object) -> None: + if isinstance(value, ConfiguredStudio): + found.append(value) + elif isinstance(value, dict): + for item in value.values(): + search(item) + + search(definition.get("STUDIOS", {})) + return found + + +# Where a definition's studios were last released, beside it: written by `fs release`, read by the definition +LOCATIONS_SUFFIX = ".studios.json" + + +def locations_path(definition: pathlib.Path) -> pathlib.Path: + return definition.with_name(definition.stem + LOCATIONS_SUFFIX) + + +def read_locations(definition: pathlib.Path) -> dict[str, dict[str, str]]: + """Each of a definition's released studios, by name, as `{documentId, elementId}`; none before its first + release.""" + path = locations_path(definition) + if not path.is_file(): + return {} + data = json.loads(path.read_text()) + return { + name: {"documentId": data["documentId"], "elementId": element_id} + for name, element_id in data["elements"].items() + } + + +def write_locations(definition: pathlib.Path, document_id: str, elements: Mapping[str, str]) -> None: + """Records where a definition's studios were released: the library's document, and each one's tab.""" + data = {"documentId": document_id, "elements": dict(elements)} + locations_path(definition).write_text(json.dumps(data, indent=2) + "\n", newline="") + + +def feature_namespace(element_id: str, microversion_id: str) -> str: + """How a feature names the Feature Studio defining it, when the Part Studio is in the same workspace.""" + return f"e{element_id}::m{microversion_id}" + + +@dataclasses.dataclass +class Built: + """A Part Studio `build` made or updated. + + Attributes: + element_id: Its tab, which keeps its id from build to build. + created: Whether `build` made the tab. + status: Its feature's state in the default configuration, as Onshape reports it: OK, INFO, WARNING or ERROR. + """ + + element_id: str + created: bool + status: str + + +def _check_configuration(studio: ConfiguredStudio, written: dict) -> None: + """Fails unless Onshape kept the inputs' ids and enum names, which the feature's configured parameters and + FRCDesign's configurations name.""" + sent = [ + (parameter["parameterId"], parameter.get("enumName")) + for parameter in studio.configuration_body()["configurationParameters"] + ] + kept = [ + (parameter.get("parameterId"), parameter.get("enumName")) + for parameter in written.get("configurationParameters", []) + ] + if kept != sent: + raise ConfigureError(f"Onshape stored {studio.tab_name}'s configuration inputs as {kept}, not as sent: {sent}.") + + +def build(api, workspace, studio: ConfiguredStudio, feature_studio_id: str, feature_studio_microversion: str) -> Built: + """Makes a Part Studio exactly `studio`: finds its tab by name in a workspace, or creates it; deletes the feature a + build inserted before, whose configured parameters name the configuration's inputs and options, and which Onshape + refuses a configuration to leave naming ones it no longer has ("the feature list becoming invalid"); writes its + configuration; then inserts its feature, from the Feature Studio in the same workspace as it is now, and configures + it. + + The configured feature keeps the namespaces Onshape stored on insert, for the feature and each of its enums: a + feature from a Feature Studio which re-exports another document's is stored under another namespace than it was + inserted with, and Onshape refuses an update naming any other ("Feature does not match"). + + Args: + api: An onshape_api Api. + workspace: The document's InstancePath, a workspace. + feature_studio_microversion: The Feature Studio's microversion, which the feature is inserted at. + """ + from onshape_api.endpoints import documents, elements, part_studios + from onshape_api.exceptions import ApiError + from onshape_api.paths.paths import ElementPath + from onshape_api.types import ElementType + + @contextlib.contextmanager + def step(doing: str): + """Says which step Onshape refused, since its own messages don't.""" + try: + yield + except ApiError as error: + raise ConfigureError(f"Onshape refused to {doing} in {studio.tab_name}: {error}") from error + + tabs = [ + element + for element in documents.get_document_elements(api, workspace, ElementType.PART_STUDIO) + if element["name"] == studio.tab_name + ] + if len(tabs) > 1: + raise ConfigureError(f"The document has {len(tabs)} Part Studios named {studio.tab_name}; keep one.") + created = not tabs + if created: + with step("create the tab"): + element_id = part_studios.create_part_studio(api, workspace, studio.tab_name)["id"] + else: + element_id = tabs[0]["id"] + part_studio = ElementPath.from_path(workspace, element_id) + + feature_list = part_studios.get_features(api, part_studio) + matches = [feature for feature in feature_list["features"] if feature.get("featureType") == studio.feature] + if len(matches) > 1: + raise ConfigureError(f"{studio.tab_name} has {len(matches)} {studio.feature} features; keep one.") + if matches: + with step(f"delete the {studio.feature} a build inserted before"): + part_studios.delete_feature(api, part_studio, matches[0]["featureId"]) + # Configured parameters name the configuration's inputs, so it comes before the feature + with step("write the configuration"): + written = elements.update_configuration(api, part_studio, studio.configuration_body()) + _check_configuration(studio, written) + namespace = feature_namespace(feature_studio_id, feature_studio_microversion) + # Inserted plain and configured after, so a refusal names which of the two Onshape objects to + with step(f"insert {studio.feature}"): + part_studios.add_feature( + api, + part_studio, + { + "btType": "BTMFeature-134", + "featureType": studio.feature, + "name": studio.tab_name, + "namespace": namespace, + "parameters": studio.default_parameters(namespace), + }, + ) + # Its configuration, or its insert, changed its microversion + feature_list = part_studios.get_features(api, part_studio) + feature = next(feature for feature in feature_list["features"] if feature.get("featureType") == studio.feature) + stored = feature.get("parameters", []) + configured = { + parameter["parameterId"]: parameter + for parameter in stored_namespaces(studio.configured_parameters(feature.get("namespace", "")), stored) + } + parameters = [configured.pop(parameter["parameterId"], parameter) for parameter in stored] + with step(f"configure {studio.feature}"): + response = part_studios.update_feature( + api, + part_studio, + {**feature, "parameters": [*parameters, *configured.values()]}, + feature_list["sourceMicroversion"], + ) + status = response.get("featureState", {}).get("featureStatus", "OK") + return Built(element_id, created, status) + + +def stored_namespaces(configured: list[dict], stored: list[dict]) -> list[dict]: + """Configured parameters with each enum value in the namespace Onshape stored its parameter's enum under.""" + namespaces = { + parameter["parameterId"]: parameter.get("namespace", "") + for parameter in stored + if parameter.get("btType") == "BTMParameterEnum-145" + } + + def renamed(parameter: dict) -> dict: + namespace = namespaces.get(parameter["parameterId"]) + if namespace is None: + return parameter + values = [ + {**value, "value": {**value["value"], "namespace": namespace}} + if value["value"].get("btType") == "BTMParameterEnum-145" + else value + for value in parameter["values"] + ] + return {**parameter, "values": values} + + return [renamed(parameter) for parameter in configured] + + +def configuration_stages(studio: ConfiguredStudio) -> list[tuple[str, dict]]: + """Ever larger configurations, ending with the studio's own: none, its inputs with no conditions, then each input's + conditions added in turn, each with what it adds. An input's rules go in together: alone, one could hide its + default, which Onshape refuses.""" + full = studio.configuration_body()["configurationParameters"] + conditions = ("visibilityCondition", "enumOptionVisibilityConditions") + bare = [{key: value for key, value in parameter.items() if key not in conditions} for parameter in full] + stages: list[tuple[str, list[dict]]] = [("an empty configuration", []), ("the inputs, with no conditions", bare)] + for index, parameter in enumerate(full): + rules = parameter.get("enumOptionVisibilityConditions", {}).get("visibilityConditions", []) + if parameter != bare[index]: + described = f"{len(rules)} option rules" if len(rules) > 1 else "option rule" if rules else "visibility condition" + stages.append((f"{parameter['parameterId']}'s {described}", [*full[: index + 1], *bare[index + 1 :]])) + return [ + (what, {"btType": "BTConfigurationUpdateCall-2933", "configurationParameters": parameters}) + for what, parameters in stages + ] + + +@dataclasses.dataclass +class Diagnosis: + """What `diagnose` found. + + Attributes: + element_id: The scratch tab it wrote to. + accepted: The stages Onshape accepted, in order. + refused: The first stage Onshape refused, and its error; None when it accepted them all. + features: The feature types in the tab the studio is built in, if there is one. + """ + + element_id: str + accepted: list[str] + refused: tuple[str, str] | None + features: list[str] | None + + +DIAGNOSE_SUFFIX = " (DIAGNOSE)" + + +def diagnose(api, workspace, studio: ConfiguredStudio, built_tab: str) -> Diagnosis: + """Writes `configuration_stages` in turn to a scratch Part Studio, ` (DIAGNOSE)`, found or created in a + workspace, until Onshape refuses one: which part of the configuration it refuses. Also lists the features in + `built_tab`, the tab the studio is built in.""" + from onshape_api.endpoints import documents, elements, part_studios + from onshape_api.exceptions import ApiError + from onshape_api.paths.paths import ElementPath + from onshape_api.types import ElementType + + tabs = documents.get_document_elements(api, workspace, ElementType.PART_STUDIO) + built = next((element for element in tabs if element["name"] == built_tab), None) + features = None + if built is not None: + listed = part_studios.get_features(api, ElementPath.from_path(workspace, built["id"]))["features"] + features = [feature.get("featureType", feature.get("btType", "?")) for feature in listed] + name = studio.tab_name + DIAGNOSE_SUFFIX + scratch = next((element for element in tabs if element["name"] == name), None) + element_id = scratch["id"] if scratch else part_studios.create_part_studio(api, workspace, name)["id"] + part_studio = ElementPath.from_path(workspace, element_id) + accepted: list[str] = [] + for what, body in configuration_stages(studio): + try: + elements.update_configuration(api, part_studio, body) + except ApiError as error: + return Diagnosis(element_id, accepted, (what, str(error)), features) + accepted.append(what) + return Diagnosis(element_id, accepted, None, features) diff --git a/fs_cli/cots.py b/fs_cli/cots.py index 4e5d7f78..11029d82 100644 --- a/fs_cli/cots.py +++ b/fs_cli/cots.py @@ -23,7 +23,7 @@ import requests API = "https://app.frcdesign.org/api" -LIBRARIES = {"frc": "frc-design-lib", "ftc": "ftc-design-lib", "mkcad": "mkcad"} +LIBRARIES = {"frc": "frc-design-lib", "config": "config-lib", "mkcad": "mkcad"} class CotsError(Exception): @@ -64,7 +64,7 @@ def parts(self) -> list[Part]: """Every part in the library, most used first.""" data = self.get(f"/library-data/library/{self.library}", v=self.version) uses = { - entry["path"]["elementId"]: entry["insertCount"] + entry["path"]["elementId"]: entry["useCount"] for entry in self.get(f"/analytics/parts/library/{self.library}", **self.period) } groups = {group_id: group["name"] for group_id, group in data["groups"].items()} diff --git a/fs_cli/gen.py b/fs_cli/gen.py index aca025bb..8cead695 100644 --- a/fs_cli/gen.py +++ b/fs_cli/gen.py @@ -7,6 +7,10 @@ An icon definition (see fs_cli.icons) sets ICON instead, which `fs gen` writes to the .svg file of the same name (released/lighten/robotLightenIcon.py writes released/lighten/robotLightenIcon.svg). + +A definition configuring Part Studios from another's tables sets STUDIOS (and EXPORTS) without CONTENTS, and writes no +Feature Studio. A definition may also set EXPORTS, a map of file names to their text, for what reads its data outside Onshape (like +fasteners/fastenerTables.py's manifest for FRCDesign); each is written beside it. """ from __future__ import annotations @@ -129,23 +133,36 @@ def generate( results.append(Generated(source, output, code, code != old)) continue contents = definition.get("CONTENTS") - if contents is None: - raise GenerateError(f"{source} doesn't define CONTENTS or ICON.") - output = source.with_name(source.stem + GENERATED_SUFFIX) - old = output.read_text() if output.is_file() else None - version = (_version(old) if old else None) or default_version - if version is None: - raise GenerateError( - f"Can't tell which FeatureScript version {output.name} should use; run `fs pull-std` first." - ) - code = render(contents, version, source.name, _resolver(source, old, synced or {})) - if old: - # Onshape manages the versions of imports, so keep its - code = apply_import_versions(code, import_versions(old)) - results.append(Generated(source, output, code, code != old)) + if contents is None and "STUDIOS" not in definition: + raise GenerateError(f"{source} doesn't define CONTENTS, STUDIOS, or ICON.") + if contents is not None: + results.append(_feature_studio(source, contents, default_version, synced)) + for name, text in definition.get("EXPORTS", {}).items(): + exported = source.with_name(name) + if exported.suffix == ".fs": + raise GenerateError(f"{source.name} exports {name}, a Feature Studio: put it in CONTENTS.") + previous = exported.read_text() if exported.is_file() else None + results.append(Generated(source, exported, text, text != previous)) return results +def _feature_studio( + source: pathlib.Path, contents: list, default_version: str | None, synced: Mapping[str, tuple[str, str]] | None +) -> Generated: + output = source.with_name(source.stem + GENERATED_SUFFIX) + old = output.read_text() if output.is_file() else None + version = (_version(old) if old else None) or default_version + if version is None: + raise GenerateError( + f"Can't tell which FeatureScript version {output.name} should use; run `fs pull-std` first." + ) + code = render(contents, version, source.name, _resolver(source, old, synced or {})) + if old: + # Onshape manages the versions of imports, so keep its + code = apply_import_versions(code, import_versions(old)) + return Generated(source, output, code, code != old) + + def _resolver( source: pathlib.Path, old: str | None, synced: Mapping[str, tuple[str, str]] ) -> Resolver: diff --git a/fs_cli/git.py b/fs_cli/git.py index 4330e862..4b3c9315 100644 --- a/fs_cli/git.py +++ b/fs_cli/git.py @@ -87,6 +87,43 @@ def is_repository(root: pathlib.Path) -> bool: return _git(root, "rev-parse", "--is-inside-work-tree") is not None +def commit_all(root: pathlib.Path, message: str) -> str | None: + """Commits every change to the working tree, new files included; the short commit, or None if nothing changed.""" + if _git(root, "add", "--all") is None: + raise RuntimeError("git add failed") + if not (_git(root, "diff", "--cached", "--name-only") or "").strip(): + return None + if _git(root, "commit", "--quiet", "--message", message) is None: + raise RuntimeError("git commit failed") + commit = _git(root, "rev-parse", "--short", "HEAD") + return commit.strip() if commit else None + + +def current_branch(root: pathlib.Path) -> str | None: + """The branch checked out; None outside a repository or on a detached HEAD.""" + branch = _git(root, "symbolic-ref", "--quiet", "--short", "HEAD") + return branch.strip() if branch else None + + +def head_commit(root: pathlib.Path) -> str | None: + commit = _git(root, "rev-parse", "HEAD") + return commit.strip() if commit else None + + +def is_clean(root: pathlib.Path) -> bool: + """Whether nothing tracked differs from HEAD.""" + status = _git(root, "status", "--porcelain", "--untracked-files=no") + return status is not None and not status.strip() + + +def remote_branches(root: pathlib.Path) -> set[str] | None: + """The branches on origin; None if it can't be reached.""" + heads = _git(root, "ls-remote", "--heads", "origin") + if heads is None: + return None + return {line.split("refs/heads/", 1)[1] for line in heads.splitlines() if "refs/heads/" in line} + + def commit_with_contents(root: pathlib.Path, file: pathlib.Path, contents: str) -> str | None: """The newest commit in which file (following it through renames) has contents, as `content_hash` compares them (so not counting the versions of same-document imports, which Onshape manages). None if there's none, or root isn't diff --git a/fs_cli/parts.py b/fs_cli/parts.py new file mode 100644 index 00000000..f6fe514b --- /dev/null +++ b/fs_cli/parts.py @@ -0,0 +1,276 @@ +"""Part sets (`[tool.fs.parts]`): Part Studios built from a definition's configured studios, like FRCDesign's fasteners, +whose FeatureScript only they use. Their FeatureScript is in the backend document like any other, and its imports work +the same, but it's tried and released here rather than by `fs release`: + +- `fs parts --test` builds each Part Studio in the branch's backend workspace, named ` (TEST)`, from the + FeatureScript as pushed, to try a change. Nothing else is written. +- `fs parts --release` versions the backend document, points the set's main document (an FRCDesignLib document) + at that version, builds each Part Studio there and writes the set's manifest beside them (`.parts.json`), + versions the main document, records where they are beside their definition (`.studios.json`), writes the + definition's exports again, and tags the release in git. With `--target`, it does the same to another document, to + try it out, but numbers, records, and tags nothing. + +See docs/parts.md. +""" + +from __future__ import annotations + +import dataclasses +import json +import pathlib +import re +import runpy +from collections.abc import Callable + +from fs_cli.branches import branch_name +from fs_cli.config import ConfigError, PartSet +from fs_cli.configured_studios import ( + Built, + ConfiguredStudio, + ConfigureError, + Diagnosis, + configured_studios, + write_locations, +) +from fs_cli.git import head_commit +from fs_cli.release import find_frontend_studio, version_backend +from fs_cli.remote import Remote, RemoteStudio +from fs_cli.versions import ( + ReleasedVersion, + VersionType, + latest_release, + next_version, +) +from fs_cli.workspace import Status, Studio, UsageError, Workspace +from onshape_api.paths.paths import InstancePath + +# What a test Part Studio's tab is called after its studio's, e.g. `Screw (TEST)` +TEST_SUFFIX = " (TEST)" + + +def defines(code: str, feature: str) -> bool: + """Whether a Feature Studio's code defines a feature, by the constant it's exported as.""" + return re.search(rf"\bexport\s+const\s+{re.escape(feature)}\s*=\s*defineFeature\b", code) is not None + + +def part_set_definitions(workspace: Workspace, part_set: PartSet) -> list[tuple[pathlib.Path, list[ConfiguredStudio]]]: + """The definitions in a part set's folder which configure Part Studios, each with its studios, checked offline + against the configuration rules before anything is sent to Onshape.""" + folder = workspace.config.code_dir / part_set.folder + paths = [folder / part_set.definition] if part_set.definition else sorted(folder.rglob("*.py")) + found = [] + for path in paths: + studios = configured_studios(runpy.run_path(str(path))) + if studios: + found.append((path, studios)) + if not found: + raise UsageError(f"Nothing in {part_set.folder}/ configures a Part Studio (a definition's STUDIOS).") + problems = [problem for _, studios in found for studio in studios for problem in studio.problems()] + if problems: + raise UsageError("The configurations break their rules (see docs/fs-cli.md's \"Configured Part Studios\"):\n " + "\n ".join(problems)) + return found + + +def feature_studio(workspace: Workspace, part_set: PartSet, studios: list[ConfiguredStudio]) -> Studio: + """The part set's Feature Studio defining every studio's feature, which they're built from. Every studio in the + set's folder must be pushed and in sync, its tables included.""" + scanned = workspace.scan(workspace.resolve_targets([str(workspace.config.code_dir / part_set.folder)])) + unsynced = [studio.path for studio in scanned if studio.remote is None or studio.status != Status.IN_SYNC] + if unsynced: + raise UsageError( + f"{', '.join(unsynced)} isn't in sync with the backend document; run `fs push` (or `fs status`) first." + ) + # Onshape has refused to configure a feature from a Feature Studio whose import versions it changed since the last + # sync ("Feature not found", observed), until they were written locally and the studio recorded again + for updated in workspace.apply_import_updates(scanned): + print(f"Updated import versions in {updated.path} to match Onshape") + candidates = [ + studio + for studio in scanned + if studio.local_code is not None and all(defines(studio.local_code, each.feature) for each in studios) + ] + features = ", ".join(sorted({each.feature for each in studios})) + if len(candidates) != 1: + raise UsageError(f"Expected one FeatureScript in {part_set.folder}/ defining {features}; found {len(candidates)}.") + return candidates[0] + + +def build_studios( + remote: Remote, + instance: InstancePath, + studios: list[ConfiguredStudio], + feature: RemoteStudio, + log: Callable[[str], None] = print, +) -> dict[str, Built]: + """Builds each studio in a workspace from a Feature Studio there. A feature that fails to regenerate in its default + configuration stops the build.""" + built: dict[str, Built] = {} + for studio in studios: + log(f"Building {studio.tab_name}...") + try: + result = remote.build_studio(instance, studio, feature.element_id, feature.microversion_id) + except ConfigureError as error: + raise UsageError(str(error)) from error + if result.status == "ERROR": + raise UsageError( + f"{studio.tab_name}'s {studio.feature} fails to regenerate in its default configuration; " + "its Part Studio says why." + ) + built[studio.name] = result + return built + + +def write_exports(path: pathlib.Path) -> list[pathlib.Path]: + """Writes a definition's EXPORTS again, now that its studios' locations changed; answers those that changed.""" + definition = runpy.run_path(str(path)) + changed = [] + for name, text in definition.get("EXPORTS", {}).items(): + exported = path.with_name(name) + if not exported.is_file() or exported.read_text() != text: + exported.write_text(text, newline="") + changed.append(exported) + return changed + + +# Trying a change + + +def test_studios(studios: list[ConfiguredStudio]) -> list[ConfiguredStudio]: + """The studios as their test Part Studios, named ` (TEST)`.""" + return [dataclasses.replace(studio, tab=studio.tab_name + TEST_SUFFIX) for studio in studios] + + +def run_test( + workspace: Workspace, part_set: PartSet, log: Callable[[str], None] = print +) -> list[tuple[ConfiguredStudio, Built]]: + """Builds a part set's test Part Studios in the backend document, from its FeatureScript as pushed.""" + definitions = part_set_definitions(workspace, part_set) + every = [studio for _, studios in definitions for studio in test_studios(studios)] + feature = feature_studio(workspace, part_set, every) + assert feature.remote + built = build_studios(workspace.remote, workspace.instance, every, feature.remote, log) + return [(studio, built[studio.name]) for studio in every] + + +def run_diagnose( + workspace: Workspace, part_set: PartSet, log: Callable[[str], None] = print +) -> list[tuple[ConfiguredStudio, Diagnosis]]: + """Diagnoses each of a part set's configurations in the backend document, stopping at the first Onshape refuses.""" + diagnosed = [] + for _, studios in part_set_definitions(workspace, part_set): + for studio in studios: + log(f"Diagnosing {studio.tab_name}...") + diagnosis = workspace.remote.diagnose_studio(workspace.instance, studio, studio.tab_name + TEST_SUFFIX) + diagnosed.append((studio, diagnosis)) + if diagnosis.refused is not None: + return diagnosed + return diagnosed + + +# Releasing + +# What a part set's manifest is called in a document it's released to, beside its Part Studios: its definition's +# manifest export (`fasteners.gen.json`) as `fasteners.parts.json` +MANIFEST_SUFFIX = ".gen.json" +RELEASED_MANIFEST_SUFFIX = ".parts.json" + + +@dataclasses.dataclass +class PartReleasePlan: + """A release of a part set: to its main document, numbered (`released`), or to a target, to try it out. + + Attributes: + main: The workspace of the document it's released to. + released: Its version number; None for a target's, which isn't numbered, recorded, or tagged. + """ + + part_set: PartSet + studio: Studio + definitions: list[tuple[pathlib.Path, list[ConfiguredStudio]]] + previous: ReleasedVersion | None + released: ReleasedVersion | None + main: InstancePath + version_name: str + + @property + def label(self) -> str: + return "main document" if self.released else "target document" + + +def plan_part_release( + workspace: Workspace, part_set: PartSet, bump: VersionType | None, target: str | None = None +) -> PartReleasePlan: + definitions = part_set_definitions(workspace, part_set) + studio = feature_studio(workspace, part_set, [each for _, studios in definitions for each in studios]) + if target is not None: + if bump is not None: + raise UsageError("A release to a target isn't numbered, so it takes no --major, --minor, or --patch.") + try: + document_id = part_set.target_document_id(target) + except ConfigError as error: + raise UsageError(str(error)) from error + main = workspace.remote.default_workspace(document_id) + commit = (head_commit(workspace.config.root) or "")[:7] + name = f"{part_set.title} test - {branch_name(workspace.config) or 'no branch'} {commit}".rstrip() + return PartReleasePlan(part_set, studio, definitions, None, None, main, name) + main = workspace.remote.default_workspace(part_set.main_document_id) + # The main document is versioned by hand, so its releases are numbered by the backend's + previous = latest_release(part_set.title, workspace.remote.versions(workspace.instance)) + try: + version = next_version(previous, bump, beta=False) + except ValueError as error: + raise UsageError(str(error)) from error + released = ReleasedVersion(part_set.title, version) + return PartReleasePlan(part_set, studio, definitions, previous, released, main, released.name) + + +def released_manifests(definition: pathlib.Path, built: dict[str, Built]) -> dict[str, bytes]: + """A definition's manifests as released beside its Part Studios: each studio with its tab in that document + (`elementId`), in place of where it was last released (`location`). By the name of the tab each is uploaded to.""" + exports = runpy.run_path(str(definition)).get("EXPORTS", {}) + manifests = {} + for name, text in exports.items(): + if not name.endswith(MANIFEST_SUFFIX): + continue + manifest = json.loads(text) + for key, studio in manifest.get("studios", {}).items(): + studio.pop("location", None) + studio["elementId"] = built[key].element_id + manifests[name.removesuffix(MANIFEST_SUFFIX) + RELEASED_MANIFEST_SUFFIX] = json.dumps(manifest).encode() + return manifests + + +def run_part_release( + workspace: Workspace, plan: PartReleasePlan, description: str, log: Callable[[str], None] = print +) -> None: + remote = workspace.remote + assert plan.studio.remote + name = plan.studio.remote.name + code = version_backend(workspace, plan.studio, plan.version_name, description, log) + main_studio = find_frontend_studio(workspace, plan.main, name) + if main_studio is None: + log(f"Creating {name} in the {plan.label}...") + main_studio = remote.create(plan.main, name) + log(f"Updating {name} in the {plan.label}...") + remote.push(plan.main, main_studio.element_id, code) + # Its microversion as pushed, which the Part Studios insert its features at + pushed = next(each for each in remote.list_studios(plan.main) if each.element_id == main_studio.element_id) + built = { + definition: build_studios(remote, plan.main, studios, pushed, log) for definition, studios in plan.definitions + } + for definition, studios in built.items(): + for tab, manifest in released_manifests(definition, studios).items(): + log(f"Writing {tab} in the {plan.label}...") + remote.put_file(plan.main, tab, manifest, "application/json") + + if plan.released is None: + # A target is versioned, for a local FRCDesignApp to load + log(f"Creating version {plan.version_name} in the {plan.label}...") + remote.create_version(plan.main, plan.version_name, description) + return + for definition, studios in built.items(): + write_locations(definition, plan.main.document_id, {name: each.element_id for name, each in studios.items()}) + for exported in write_exports(definition): + log(f"Updated {exported.name}") + # Its tab has to stay put from now on (see `load_released`) + workspace.state.released.add(plan.studio.remote.element_id) diff --git a/fs_cli/release.py b/fs_cli/release.py index b106e21d..c6891d88 100644 --- a/fs_cli/release.py +++ b/fs_cli/release.py @@ -7,7 +7,8 @@ 3. Optionally creates a version in the frontend document too, which publishes the release: it's final once it's there (with `--publish`, or later by `fs sync-versions`), and then it's tagged in git (see `tag_release`). -Beta releases go to the separate frontend_beta document instead. +Beta releases go to the separate frontend_beta document instead. A part set's FeatureScript (`[tool.fs.parts]`) isn't +released here: `fs parts --release` releases it into its FRCDesignLib document, with its Part Studios (see parts.py). Deprecating a released FeatureScript retires it without breaking Part Studios using it: they keep working, and still update to newer versions of the frontend document, since its frontend studio is kept (with the same element @@ -90,6 +91,9 @@ def plan_release( studio = find_studio(workspace, script) _check_in_sync(studio, "releasing") assert studio.remote + part_set = workspace.config.part_set_for(studio.path) + if part_set: + raise UsageError(f"{studio.path} is the {part_set.name} part set's; release it with `fs parts {part_set.name} --release`.") is_beta_feature = _is_beta(workspace, studio) if beta and not is_beta_feature: raise UsageError( @@ -99,7 +103,7 @@ def plan_release( raise UsageError( "Features whose name contains 'beta' can only be released with --beta." ) - target, target_label = _target(workspace, beta) + target, target_label = _target(workspace, studio, beta) feature_name = feature_name_for(studio.remote.name) previous = latest_release(feature_name, remote.versions(workspace.instance)) @@ -127,8 +131,8 @@ def run_release( remote = workspace.remote assert plan.studio.remote studio_name = plan.studio.remote.name - code = _version_backend(workspace, plan.studio, plan.version_name, description, log) - target_studio = _frontend_studio(workspace, plan.target, studio_name) + code = version_backend(workspace, plan.studio, plan.version_name, description, log) + target_studio = find_frontend_studio(workspace, plan.target, studio_name) if target_studio is None: log(f"Creating {studio_name} in the {plan.target_label} document...") target_studio = remote.create(plan.target, studio_name) @@ -197,8 +201,8 @@ def plan_deprecate(workspace: Workspace, script: str, keep_backend: bool) -> Dep code = deprecated_code(studio.local_code) if code is None: raise UsageError(f'{studio.path} has no "Feature Type Name" to mark deprecated.') - target, target_label = _target(workspace, _is_beta(workspace, studio)) - frontend_studio = _frontend_studio(workspace, target, studio.remote.name) + target, target_label = _target(workspace, studio, _is_beta(workspace, studio)) + frontend_studio = find_frontend_studio(workspace, target, studio.remote.name) if frontend_studio is None: raise UsageError( f"The {target_label} document has no {studio.remote.name}, so there's nothing to deprecate; delete the " @@ -229,7 +233,7 @@ def run_deprecate( studio.file.write_text(plan.code, newline="") studio.local_code = plan.code workspace.push_studios([studio]) - code = _version_backend(workspace, studio, plan.version_name, description, log) + code = version_backend(workspace, studio, plan.version_name, description, log) log(f"Updating {plan.frontend_studio.name} in the {plan.target_label} document...") remote.push(plan.target, plan.frontend_studio.element_id, code) log(f"Renaming it {plan.frontend_name}...") @@ -271,7 +275,7 @@ def _is_beta(workspace: Workspace, studio: Studio) -> bool: return "beta" in feature_names[0].lower() -def _target(workspace: Workspace, beta: bool) -> tuple[InstancePath, str]: +def _target(workspace: Workspace, studio: Studio, beta: bool) -> tuple[InstancePath, str]: config = workspace.config target = config.frontend_beta if beta else config.frontend target_label = "frontend_beta" if beta else "frontend" @@ -280,16 +284,16 @@ def _target(workspace: Workspace, beta: bool) -> tuple[InstancePath, str]: return target, target_label -def _frontend_studio(workspace: Workspace, target: InstancePath, name: str) -> RemoteStudio | None: +def find_frontend_studio(workspace: Workspace, target: InstancePath, name: str) -> RemoteStudio | None: """The frontend studio re-exporting the backend studio named `name`, which has the same name.""" return next((studio for studio in workspace.remote.list_studios(target) if studio.name == name), None) -def _version_backend( +def version_backend( workspace: Workspace, studio: Studio, name: str, description: str, log: Callable[[str], None] ) -> str: - """Creates a version of the backend document. Returns the code of a frontend studio re-exporting studio - from it.""" + """Creates a version of the backend document. Returns the code of a studio re-exporting studio from it, for a + frontend (or main) document.""" remote, backend = workspace.remote, workspace.instance assert studio.remote log(f"Creating version {name} in the backend document...") @@ -317,7 +321,8 @@ def _version_backend( def unsynced_versions(workspace: Workspace) -> list[Version]: - """Returns the release versions in the backend which are missing from the frontend, oldest first.""" + """Returns the release versions in the backend which are missing from the frontend, oldest first. A part set's + releases aren't the frontend's, so they're left out.""" config, remote = workspace.config, workspace.remote if config.frontend is None: raise UsageError("Set [tool.fs] frontend in pyproject.toml to sync versions.") @@ -326,10 +331,12 @@ def unsynced_versions(workspace: Workspace) -> list[Version]: for version in remote.versions(config.frontend) if parse_version_name(version.name) } + part_sets = {part_set.title for part_set in config.parts} missing = [] # Walk back from the newest backend version until reaching one already in the frontend for version in reversed(remote.versions(workspace.instance)): - if not parse_version_name(version.name): + released = parse_version_name(version.name) + if not released or released.feature_name in part_sets: continue if version.name in frontend_names: break @@ -383,12 +390,13 @@ def tag_release( def finalized_versions(workspace: Workspace) -> list[Version]: """The backend document's release versions which are in the frontend (or frontend_beta) document too, so final, - oldest first.""" + oldest first. A part set's are tagged as they're released (see parts.py).""" config, remote = workspace.config, workspace.remote published = set() - for frontend in (config.frontend, config.frontend_beta): - if frontend is not None: - published.update(version.name for version in remote.versions(frontend)) + targets = [config.frontend, config.frontend_beta] + for target in targets: + if target is not None: + published.update(version.name for version in remote.versions(target)) return [ version for version in remote.versions(workspace.instance) diff --git a/fs_cli/release_files.py b/fs_cli/release_files.py new file mode 100644 index 00000000..0af4fa50 --- /dev/null +++ b/fs_cli/release_files.py @@ -0,0 +1,95 @@ +"""Releases asked for by files in the repo, which run once their branch is merged into main. + +A branch asks for a release by adding a file to `releases/` (see docs/fs-cli.md#release-files), reviewed with its code: + + # releases/frame-hubs.toml + script = "robotFrame" # a FeatureScript, as `fs release` takes it; or + part_set = "fasteners" # a part set, as `fs parts SET --release` takes it + bump = "minor" # major, minor, or patch + description = "Adds hubs" # internal, as `--description` + beta = false # FeatureScripts: release to the beta document + publish = true # FeatureScripts: finalize it at once, and tag it + +`fs run-releases`, on main, runs each, deletes its file, and commits what the releases recorded. +""" + +from __future__ import annotations + +import dataclasses +import pathlib +import tomllib + +from fs_cli.config import Config +from fs_cli.versions import VersionType + +RELEASES_FOLDER = "releases" +_KEYS = {"script", "part_set", "bump", "description", "beta", "publish"} + + +class ReleaseFileError(Exception): + pass + + +@dataclasses.dataclass +class ReleaseFile: + path: pathlib.Path + bump: VersionType | None + description: str + script: str | None = None + part_set: str | None = None + beta: bool = False + publish: bool = True + + @property + def target(self) -> str: + return self.script or self.part_set or "" + + @property + def marker(self) -> str: + """Ends the description of what it releases, so a release Onshape already has is found again.""" + return f"[{RELEASES_FOLDER}/{self.path.name}]" + + @property + def described(self) -> str: + return f"{self.description} {self.marker}".strip() + + +def folder(config: Config) -> pathlib.Path: + return config.root / RELEASES_FOLDER + + +def pending(config: Config) -> list[ReleaseFile]: + """Every release file, in name order, which is the order they run in.""" + if not folder(config).is_dir(): + return [] + return [load(config, path) for path in sorted(folder(config).glob("*.toml"))] + + +def load(config: Config, path: pathlib.Path) -> ReleaseFile: + where = path.relative_to(config.root).as_posix() + try: + data = tomllib.loads(path.read_text()) + except tomllib.TOMLDecodeError as error: + raise ReleaseFileError(f"{where} isn't valid TOML: {error}") from error + unknown = set(data) - _KEYS + if unknown: + raise ReleaseFileError(f"{where} has unknown keys: {', '.join(sorted(unknown))} (it takes {', '.join(sorted(_KEYS))}).") + if ("script" in data) == ("part_set" in data): + raise ReleaseFileError(f"{where} must name one script (a FeatureScript) or one part_set.") + bump = data.get("bump") + if bump is not None and bump not in [version_type.value for version_type in VersionType]: + raise ReleaseFileError(f"{where}: bump is major, minor, or patch, not {bump!r}.") + if "part_set" in data: + if not any(part_set.name == data["part_set"] for part_set in config.parts): + raise ReleaseFileError(f"{where}: no part set named {data['part_set']} in [tool.fs.parts].") + if "beta" in data or "publish" in data: + raise ReleaseFileError(f"{where}: a part set's release has no beta or publish.") + return ReleaseFile( + path, + VersionType(bump) if bump is not None else None, + str(data.get("description", "")), + data.get("script"), + data.get("part_set"), + bool(data.get("beta", False)), + bool(data.get("publish", True)), + ) diff --git a/fs_cli/remote.py b/fs_cli/remote.py index 801aec9f..dffffc87 100644 --- a/fs_cli/remote.py +++ b/fs_cli/remote.py @@ -6,11 +6,12 @@ import pathlib from typing import Protocol +from fs_cli.configured_studios import Built, ConfiguredStudio, Diagnosis, build, diagnose from onshape_api.api.api_base import Api -from onshape_api.endpoints import blob_elements, documents, elements, feature_studios, metadata, versions +from onshape_api.endpoints import blob_elements, documents, elements, feature_studios, metadata, versions, workspaces from onshape_api.endpoints.std_versions import get_latest_std_version -from onshape_api.paths.paths import ElementPath, InstancePath -from onshape_api.types import ElementGroup, ElementType +from onshape_api.paths.paths import DocumentPath, ElementPath, InstancePath +from onshape_api.types import ElementGroup, ElementType, MergeStrategy @dataclasses.dataclass @@ -87,6 +88,15 @@ class Version: description: str = "" +@dataclasses.dataclass +class RemoteWorkspace: + """A workspace (a branch) of a document.""" + + id: str + name: str + description: str = "" + + class Remote(Protocol): def list_studios(self, instance: InstancePath) -> list[RemoteStudio]: """Lists the Feature Studios in a document, with their microversions (but not folders).""" @@ -126,6 +136,8 @@ def create_version( def latest_std_version(self) -> str: ... + def default_workspace(self, document_id: str) -> InstancePath: ... + def list_images(self, instance: InstancePath) -> list[RemoteImage]: """Lists the images (blob elements holding SVGs or PNGs) in a document, with their microversions.""" ... @@ -140,6 +152,39 @@ def update_image(self, instance: InstancePath, element_id: str, name: str, data: """Replaces an image tab's file, returning its new microversion.""" ... + def put_file(self, instance: InstancePath, name: str, data: bytes, content_type: str) -> str: + """Writes a file to the tab of that name, which it creates if there's none (2 calls, 1 anonymous); its element + id.""" + ... + + def element_ids(self, instance: InstancePath) -> set[str]: + """Every tab's element id (anonymous for public documents).""" + ... + + def workspaces(self, document_id: str) -> list[RemoteWorkspace]: ... + + def create_workspace(self, document_id: str, version_id: str, name: str, description: str) -> RemoteWorkspace: + """Branches a workspace from a version (1 call).""" + ... + + def delete_workspace(self, instance: InstancePath) -> None: ... + + def merge(self, target: InstancePath, source_workspace_id: str, strategy: MergeStrategy) -> None: + """Merges a workspace of the same document into target (1 call).""" + ... + + def build_studio( + self, instance: InstancePath, studio: ConfiguredStudio, feature_studio_id: str, microversion_id: str + ) -> Built: + """Makes a configured Part Studio in a workspace, from a Feature Studio there (see `configured_studios.build`; + 4 or 5 calls).""" + ... + + def diagnose_studio(self, instance: InstancePath, studio: ConfiguredStudio, built_tab: str) -> Diagnosis: + """Which part of a studio's configuration Onshape refuses (see `configured_studios.diagnose`; a call per stage, + and 2 or 3 more).""" + ... + class OnshapeRemote: def __init__(self, api: Api) -> None: @@ -201,6 +246,9 @@ def create_version( def latest_std_version(self) -> str: return get_latest_std_version(self.api) + def default_workspace(self, document_id: str) -> InstancePath: + return documents.get_default_workspace(self.api, DocumentPath(document_id)) + def list_images(self, instance: InstancePath) -> list[RemoteImage]: elements = documents.get_document_elements(self.api, instance, ElementType.BLOB) return [ @@ -223,6 +271,48 @@ def update_image(self, instance: InstancePath, element_id: str, name: str, data: response = blob_elements.upload_file_update_element(self.api, path, name, data, content_type) return RemoteImage(response["id"], response["name"], response["microversionId"], content_type) + def put_file(self, instance: InstancePath, name: str, data: bytes, content_type: str) -> str: + tabs = [ + element["id"] + for element in documents.get_document_elements(self.api, instance, ElementType.BLOB) + if element["name"] == name + ] + if len(tabs) > 1: + raise ValueError(f"The document has {len(tabs)} tabs named {name}; delete all but one.") + if tabs: + path = ElementPath.from_path(instance, tabs[0]) + return blob_elements.upload_file_update_element(self.api, path, name, data, content_type)["id"] + return blob_elements.upload_file_create_element(self.api, instance, name, data, content_type)["id"] + + def element_ids(self, instance: InstancePath) -> set[str]: + return {element["id"] for element in documents.get_document_elements(self.api, instance)} + + def workspaces(self, document_id: str) -> list[RemoteWorkspace]: + return [ + RemoteWorkspace(workspace["id"], workspace["name"], workspace.get("description") or "") + for workspace in workspaces.get_workspaces(self.api, DocumentPath(document_id)) + ] + + def create_workspace(self, document_id: str, version_id: str, name: str, description: str) -> RemoteWorkspace: + created = workspaces.create_workspace(self.api, DocumentPath(document_id), version_id, name, description) + return RemoteWorkspace(created["id"], created["name"], description) + + def delete_workspace(self, instance: InstancePath) -> None: + workspaces.delete_workspace(self.api, instance) + + def merge(self, target: InstancePath, source_workspace_id: str, strategy: MergeStrategy) -> None: + merged = workspaces.merge_into_workspace(self.api, target, source_workspace_id, strategy) + if merged.get("libraryVersionMismatch"): + raise ValueError("Onshape won't merge workspaces at different FeatureScript versions.") + + def build_studio( + self, instance: InstancePath, studio: ConfiguredStudio, feature_studio_id: str, microversion_id: str + ) -> Built: + return build(self.api, instance, studio, feature_studio_id, microversion_id) + + def diagnose_studio(self, instance: InstancePath, studio: ConfiguredStudio, built_tab: str) -> Diagnosis: + return diagnose(self.api, instance, studio, built_tab) + def _image_type(name: str) -> str: content_type = image_type(name) diff --git a/fs_cli/state.py b/fs_cli/state.py index 3190414a..2869d2d4 100644 --- a/fs_cli/state.py +++ b/fs_cli/state.py @@ -128,11 +128,18 @@ def __init__( self.released = released if released is not None else set() # element id -> state, for image tabs; their hashes are of their bytes (see `image_hash`) self.images = images if images is not None else {} + self.workspace: str | None = None @classmethod - def load(cls, path: pathlib.Path, studios_path: pathlib.Path) -> State: + def load(cls, path: pathlib.Path, studios_path: pathlib.Path, workspace: str | None = None) -> State: + """Args: + workspace: The workspace the state is of, when it's a branch's: a state of another, which the branch had + before its workspace was made again, is dropped. None reads it whichever it is. + """ files = load_studio_files(studios_path) synced = _read_json(path) + if workspace is not None and synced.get("workspace") != workspace: + synced = {} if synced.get("version") == _STATE_VERSION_WITH_FILES: for element_id, studio in synced.get("studios", {}).items(): if isinstance(studio, dict) and "file" in studio: @@ -147,13 +154,15 @@ def states(files: dict[str, str], key: str) -> dict[str, StudioState]: result[element_id] = StudioState(file, entry.get("hash", ""), entry.get("microversion_id", "")) return result - return cls( + state = cls( path, studios_path, states(files, "studios"), load_released(studios_path), states(load_image_files(studios_path), "images"), ) + state.workspace = workspace + return state def save(self) -> None: studios = sorted(self.studios.items()) @@ -172,7 +181,9 @@ def synced(entries: list[tuple[str, StudioState]]) -> dict: if entry.hash or entry.microversion_id } - data = {"version": STATE_VERSION, "studios": synced(studios)} + data: dict = {"version": STATE_VERSION, "studios": synced(studios)} + if self.workspace is not None: + data["workspace"] = self.workspace if images: data["images"] = synced(images) _write_json(self.path, data) @@ -188,7 +199,11 @@ def migrate(path: pathlib.Path, studios_path: pathlib.Path) -> None: def load_studio_files(studios_path: pathlib.Path) -> dict[str, str]: """Maps element ids to files in the code folder, from fs-studios.json.""" - data = _read_json(studios_path) + return studio_files(_read_json(studios_path)) + + +def studio_files(data: dict) -> dict[str, str]: + """Maps element ids to files in the code folder, from fs-studios.json's contents.""" if data.get("version") != STUDIOS_VERSION: return {} return { diff --git a/fs_cli/workspace.py b/fs_cli/workspace.py index ca57a0fc..29817015 100644 --- a/fs_cli/workspace.py +++ b/fs_cli/workspace.py @@ -20,6 +20,7 @@ import collections import dataclasses import enum +import json import pathlib import re import time @@ -31,14 +32,18 @@ from fs_cli.renames import most_similar from fs_cli.remote import Remote, RemoteStudio, file_name_for, image_type, is_local, relative_path_for from onshape_api.exceptions import ApiError +from onshape_api.paths.paths import InstancePath from fs_cli.state import ( State, StudioState, apply_import_versions, content_hash, import_versions, + load_studio_files, path_imports, resolve_path_imports, + retarget_imports, + studio_files, ) MAX_WORKERS = 8 @@ -136,13 +141,21 @@ def all(self) -> set[str]: class Workspace: def __init__( - self, config: Config, state: State, remote: Remote, use_git: bool = True + self, + config: Config, + state: State, + remote: Remote, + use_git: bool = True, + instance: InstancePath | None = None, ) -> None: + """Args: + instance: The backend workspace it syncs with: the main one, or a git branch's (see fs_cli/branches.py). + """ self.config = config self.state = state self.remote = remote self.use_git = use_git - self.instance = config.backend + self.instance = instance or config.backend self.listed_microversions: dict[str, str] = {} # Every tab, as of the last listing self.listed_studios: list[RemoteStudio] = [] @@ -490,13 +503,38 @@ def path_import_problems(self, studios: list[Studio], images: Iterable[str] = () ) return problems + def previous_tabs(self, studios: list[Studio]) -> dict[str, str]: + """The tabs fs-studios.json records for files about to get new ones: each old element id, and its file. Files + import tabs by id, so a file importing one of these must be pushed with the new tab. Any command saves the file + without a tab deleted in Onshape, so its last commit is read too. Makes no API calls.""" + creating = {studio.path for studio in studios if studio.remote is None} + files = load_studio_files(self.config.studios_path) + committed = git.committed_contents(self.config.root, self.config.studios_path) if self.use_git else None + if committed: + files = {**studio_files(json.loads(committed)), **files} + return {element_id: path for element_id, path in files.items() if path in creating} + + def stale_import_problems(self, studios: list[Studio]) -> list[str]: + """Files importing a tab about to be made again under a new id which aren't being pushed with it, so would keep + importing a tab that's gone. Makes no API calls.""" + pushing = {studio.path for studio in studios} + return [ + f"{importer} imports {path} by its old tab ({element_id}), which this push makes again under a new id; " + f"push {importer} too." + for element_id, path in self.previous_tabs(studios).items() + for importer in self.importers(element_id) + if importer not in pushing + ] + def push_studios(self, studios: list[Studio]) -> None: """Pushes studios to Onshape, creating any which don't exist yet. New studios are created at the top level of the document, since the API can't place them in folders. Imports by path (see path_import_problems) are then replaced with - imports by element id, in the local files too. + imports by element id, in the local files too, as are imports of a studio's old tab when + it's made again (see stale_import_problems). """ + previous = self.previous_tabs(studios) def create(studio: Studio) -> None: studio.remote = self.remote.create(self.instance, studio.name) @@ -511,23 +549,53 @@ def create(studio: Studio) -> None: for studio in studios: assert studio.remote targets[studio.path] = (studio.remote.element_id, studio.remote.microversion_id) + recreated = {element_id: targets[path] for element_id, path in previous.items() if targets[path][0] != element_id} - def push(studio: Studio) -> None: - assert studio.local_code is not None and studio.remote - code = resolve_path_imports(studio.local_code, targets) + def prepare(studio: Studio) -> str: + assert studio.local_code is not None + code = retarget_imports( + resolve_path_imports(studio.local_code, targets), recreated + ) if studio.remote_code is not None: # Never push import versions older than the ones Onshape has, except of tabs just pushed versions = import_versions(studio.remote_code) code = apply_import_versions( - code, {id: version for id, version in versions.items() if id not in self.updated_imports} + code, + { + id: version + for id, version in versions.items() + if id not in self.updated_imports + }, ) + return code + + codes = {studio.path: prepare(studio) for studio in studios} + pushed_versions: dict[str, str] = {} + + def push(studio: Studio) -> None: + assert studio.remote + code = apply_import_versions(codes[studio.path], pushed_versions) if code != studio.local_code: studio.file.write_text(code, newline="") studio.local_code = code self.remote.push(self.instance, studio.remote.element_id, code) - with futures.ThreadPoolExecutor(MAX_WORKERS) as executor: - list(executor.map(push, studios)) + pushed: list[Studio] = [] + for wave in import_order(studios, codes): + if pushed: + # The new microversions of the tabs pushed so far, which their importers' imports name + listed = { + remote.element_id: remote.microversion_id + for remote in self.remote.list_studios(self.instance) + } + pushed_versions.update( + (studio.remote.element_id, listed[studio.remote.element_id]) + for studio in pushed + if studio.remote + ) + with futures.ThreadPoolExecutor(MAX_WORKERS) as executor: + list(executor.map(push, wave)) + pushed.extend(wave) # Pushing changes each studio's microversion; fetch the new ones so the next # command knows Onshape hasn't been modified since @@ -672,3 +740,31 @@ def apply_to_files( studio.local_code = new_code changed.append(studio) return changed + + +def import_order(studios: list[Studio], codes: dict[str, str]) -> list[list[Studio]]: + """Studios to push in waves, each after the tabs it imports among them. Onshape rewrites an importer's import of a + tab pushed after it, so the local file falls behind; pushed after the tab, with its new version, it doesn't.""" + waiting = list(studios) + waves: list[list[Studio]] = [] + while waiting: + pending = {studio.remote.element_id for studio in waiting if studio.remote} + wave = [ + studio + for studio in waiting + if not any( + element_id in pending + and element_id != (studio.remote and studio.remote.element_id) + for element_id in import_versions(codes[studio.path]) + ) + ] + if not wave: + raise UsageError( + "These FeatureScripts import each other: " + + ", ".join(studio.path for studio in waiting) + ) + waves.append(wave) + waiting = [ + studio for studio in waiting if all(studio is not each for each in wave) + ] + return waves diff --git a/onshape_api/README.md b/onshape_api/README.md index 964c431f..707fd504 100644 --- a/onshape_api/README.md +++ b/onshape_api/README.md @@ -47,7 +47,7 @@ Tested in October 2026 (API v16), on public documents: | `GET /documents/d/{did}/versions` | No (401) | `versions.get_versions` (and so the std's versions) | | `GET /featurestudios/d/{did}/{wvm}/{wvmid}/e/{eid}` | No (401) | `feature_studios.get_contents` | | `GET /featurestudios/d/{did}/{wvm}/{wvmid}/e/{eid}/featurespecs` | No (401) | `feature_studios.get_feature_specs` | -| `GET /partstudios/d/{did}/{wvm}/{wvmid}/e/{eid}/features` | Yes | (none: read by hand for Robot motor's Block Motor) | +| `GET /partstudios/d/{did}/{wvm}/{wvmid}/e/{eid}/features` | Yes | `part_studios.get_features` | | `GET /partstudios/d/{did}/{wvm}/{wvmid}/e/{eid}/boundingboxes` | No (401) | | | `GET /parts/d/{did}/{wvm}/{wvmid}/e/{eid}` | No (401) | | diff --git a/onshape_api/endpoints/documents.py b/onshape_api/endpoints/documents.py index 8ba892c0..f5a73e4d 100644 --- a/onshape_api/endpoints/documents.py +++ b/onshape_api/endpoints/documents.py @@ -1,6 +1,6 @@ from onshape_api.api.api_base import Api from onshape_api.paths.api_path import api_path -from onshape_api.paths.paths import InstancePath +from onshape_api.paths.paths import DocumentPath, InstancePath from onshape_api.types import DocumentContents, DocumentElement, ElementType @@ -26,6 +26,12 @@ def get_document_elements( ) +def get_default_workspace(api: Api, document_path: DocumentPath) -> InstancePath: + """The workspace a document opens to.""" + document = api.get(api_path("documents", document_path, DocumentPath, skip_document_d=True)) + return InstancePath(document_path.document_id, document["defaultWorkspace"]["id"]) + + def get_document_contents(api: Api, instance_path: InstancePath) -> DocumentContents: """Fetches every element (tab) in a document along with the document's folder structure. diff --git a/onshape_api/endpoints/elements.py b/onshape_api/endpoints/elements.py index 2c3b8c4e..bfacbe72 100644 --- a/onshape_api/endpoints/elements.py +++ b/onshape_api/endpoints/elements.py @@ -8,3 +8,17 @@ def delete_element(api: Api, element_path: ElementPath) -> None: """Deletes an element (tab) from a workspace.""" assert_workspace(element_path) api.delete(api_path("elements", element_path, ElementPath)) + + +def get_configuration(api: Api, element_path: ElementPath) -> dict: + """Fetches an element's (a Part Studio's or an assembly's) configuration inputs, as Onshape stores them.""" + return api.get(api_path("elements", element_path, ElementPath, "configuration")) + + +def update_configuration(api: Api, element_path: ElementPath, configuration: dict) -> dict: + """Replaces an element's (a Part Studio's or an assembly's) configuration inputs. + + See https://onshape-public.github.io/docs/api-adv/configs/. + """ + assert_workspace(element_path) + return api.post(api_path("elements", element_path, ElementPath, "configuration"), body=configuration) diff --git a/onshape_api/endpoints/part_studios.py b/onshape_api/endpoints/part_studios.py new file mode 100644 index 00000000..3edd7102 --- /dev/null +++ b/onshape_api/endpoints/part_studios.py @@ -0,0 +1,44 @@ +from onshape_api.api.api_base import Api +from onshape_api.assertions import assert_workspace +from onshape_api.paths.api_path import api_path +from onshape_api.paths.paths import ElementPath, InstancePath + + +def get_features(api: Api, part_studio_path: ElementPath) -> dict: + """Fetches a Part Studio's feature list: its `features`, and the `sourceMicroversion` they're at. + + Anonymous for public documents (see `Api._request`). + """ + return api.get(api_path("partstudios", part_studio_path, ElementPath, "features"), anonymous=True) + + +def update_feature(api: Api, part_studio_path: ElementPath, feature: dict, source_microversion: str) -> dict: + """Replaces a feature (by its `featureId`) in a Part Studio, as it was at source_microversion.""" + assert_workspace(part_studio_path) + return api.post( + api_path( + "partstudios", part_studio_path, ElementPath, f"features/featureid/{feature['featureId']}" + ), + body={"btType": "BTFeatureDefinitionCall-1406", "feature": feature, "sourceMicroversion": source_microversion}, + ) + + +def delete_feature(api: Api, part_studio_path: ElementPath, feature_id: str) -> None: + """Deletes a feature from a Part Studio.""" + assert_workspace(part_studio_path) + api.delete(api_path("partstudios", part_studio_path, ElementPath, f"features/featureid/{feature_id}")) + + +def create_part_studio(api: Api, workspace_path: InstancePath, name: str) -> dict: + """Creates an empty Part Studio at the top level of a document; answers its element, with its `id`.""" + assert_workspace(workspace_path) + return api.post(api_path("partstudios", workspace_path, InstancePath), body={"name": name}) + + +def add_feature(api: Api, part_studio_path: ElementPath, feature: dict) -> dict: + """Adds a feature at the end of a Part Studio's feature list; answers it with its `featureState`.""" + assert_workspace(part_studio_path) + return api.post( + api_path("partstudios", part_studio_path, ElementPath, "features"), + body={"btType": "BTFeatureDefinitionCall-1406", "feature": feature}, + ) diff --git a/onshape_api/endpoints/workspaces.py b/onshape_api/endpoints/workspaces.py new file mode 100644 index 00000000..5e06b7ec --- /dev/null +++ b/onshape_api/endpoints/workspaces.py @@ -0,0 +1,59 @@ +from onshape_api.api.api_base import Api +from onshape_api.paths.api_path import api_path +from onshape_api.paths.paths import DocumentPath, InstancePath +from onshape_api.types import MergeInfo, MergeStrategy, WorkspaceInfo + + +def get_workspaces(api: Api, document_path: DocumentPath) -> list[WorkspaceInfo]: + """Fetches a document's workspaces (its branches), main included.""" + return api.get(api_path("documents", document_path, DocumentPath, "workspaces")) + + +def create_workspace( + api: Api, document_path: DocumentPath, version_id: str, name: str, description: str = "" +) -> WorkspaceInfo: + """Branches a new workspace from a version, as Onshape's UI branches only from versions.""" + return api.post( + api_path("documents", document_path, DocumentPath, "workspaces"), + body={"name": name, "versionId": version_id, "description": description}, + ) + + +def delete_workspace(api: Api, workspace_path: InstancePath) -> None: + """Deletes a workspace (a branch) and its history; versions made from it stay.""" + api.delete( + api_path( + "documents", + DocumentPath(workspace_path.document_id), + DocumentPath, + f"workspaces/{workspace_path.instance_id}", + ) + ) + + +def merge_into_workspace( + api: Api, + target: InstancePath, + source_workspace_id: str, + strategy: MergeStrategy = MergeStrategy.MERGE, +) -> MergeInfo: + """Merges a workspace of the same document into `target`, a workspace. + + Args: + strategy: For tabs changed in both since they branched: `MERGE` merges Part Studios and assemblies, `REPLACE` + takes the source's, and `KEEP` the target's. + """ + return api.post( + api_path( + "documents", + DocumentPath(target.document_id), + DocumentPath, + f"workspaces/{target.instance_id}/merge", + skip_document_d=True, + ), + body={ + "type": "workspace", + "id": source_workspace_id, + "defaultMergeStrategy": strategy, + }, + ) diff --git a/onshape_api/reference/generate.py b/onshape_api/reference/generate.py index aa401485..f04e965f 100644 --- a/onshape_api/reference/generate.py +++ b/onshape_api/reference/generate.py @@ -41,6 +41,10 @@ ("post", "/blobelements/d/{did}/w/{wid}"), ("post", "/blobelements/d/{did}/w/{wid}/e/{eid}"), ("get", "/blobelements/d/{did}/w/{wid}/e/{eid}"), + ("get", "/documents/d/{did}/workspaces"), + ("post", "/documents/d/{did}/workspaces"), + ("delete", "/documents/d/{did}/workspaces/{wid}"), + ("post", "/documents/{did}/workspaces/{wid}/merge"), ] # Polymorphic base schemas whose subtypes (from their discriminator mapping) should be kept. diff --git a/onshape_api/reference/openapi.json b/onshape_api/reference/openapi.json index 91ef5937..e70d75a4 100644 --- a/onshape_api/reference/openapi.json +++ b/onshape_api/reference/openapi.json @@ -2,7 +2,7 @@ "openapi": "3.0.1", "info": { "title": "Onshape REST API", - "version": "1.221.89963-13d10d36cb23", + "version": "1.222.91487-5a29448ff2dd", "description": "Trimmed from https://cad.onshape.com/api/openapi by onshape_api/reference/generate.py. Do not edit." }, "paths": { @@ -48,6 +48,11 @@ "multipart/form-data": { "schema": { "$ref": "#/components/schemas/BTBTranslationRequestParams" + }, + "encoding": { + "documentVersions": { + "contentType": "application/json" + } } } } @@ -137,6 +142,11 @@ "multipart/form-data": { "schema": { "$ref": "#/components/schemas/BTBTranslationRequestParams" + }, + "encoding": { + "documentVersions": { + "contentType": "application/json" + } } } } @@ -377,6 +387,153 @@ "x-BTVisibility": "PRODUCTION" } }, + "/documents/d/{did}/workspaces": { + "get": { + "tags": [ + "Document" + ], + "summary": "Retrieve workspaces by document ID.", + "operationId": "getDocumentWorkspaces", + "parameters": [ + { + "name": "did", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "default response", + "content": { + "application/json;charset=UTF-8; qs=0.09": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BTWorkspaceInfo" + } + } + } + } + } + }, + "deprecated": false, + "security": [ + { + "OAuth2": [ + "OAuth2Read" + ], + "BasicAuth": [ + "OAuth2Read" + ] + } + ], + "x-BTVisibility": "PRODUCTION" + }, + "post": { + "tags": [ + "Document" + ], + "summary": "Create workspace by document ID.", + "operationId": "createWorkspace", + "parameters": [ + { + "name": "did", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json;charset=UTF-8; qs=0.09": { + "schema": { + "$ref": "#/components/schemas/BTVersionOrWorkspaceParams" + } + } + } + }, + "responses": { + "default": { + "description": "default response", + "content": { + "application/json;charset=UTF-8; qs=0.09": { + "schema": { + "$ref": "#/components/schemas/BTWorkspaceInfo" + } + } + } + } + }, + "deprecated": false, + "security": [ + { + "OAuth2": [ + "OAuth2Write" + ], + "BasicAuth": [ + "OAuth2Write" + ] + } + ], + "x-BTVisibility": "PRODUCTION" + } + }, + "/documents/d/{did}/workspaces/{wid}": { + "delete": { + "tags": [ + "Document" + ], + "summary": "Delete workspace by document ID and workspace ID.", + "operationId": "deleteWorkspace", + "parameters": [ + { + "name": "did", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "wid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "default response", + "content": { + "application/json;charset=UTF-8; qs=0.09": { + "schema": { + "type": "object" + } + } + } + } + }, + "deprecated": false, + "security": [ + { + "OAuth2": [ + "OAuth2Delete" + ], + "BasicAuth": [ + "OAuth2Delete" + ] + } + ], + "x-BTVisibility": "PRODUCTION" + } + }, "/documents/d/{did}/{wvm}/{wvmid}/contents": { "get": { "tags": [ @@ -592,6 +749,67 @@ "x-BTVisibility": "PRODUCTION" } }, + "/documents/{did}/workspaces/{wid}/merge": { + "post": { + "tags": [ + "Document" + ], + "summary": "Merge into workspace by document ID and workspace ID.", + "operationId": "mergeIntoWorkspace", + "parameters": [ + { + "name": "did", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "wid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json;charset=UTF-8; qs=0.09": { + "schema": { + "$ref": "#/components/schemas/BTVersionOrWorkspaceMergeInfo" + } + } + }, + "required": true + }, + "responses": { + "default": { + "description": "default response", + "content": { + "application/json;charset=UTF-8; qs=0.09": { + "schema": { + "$ref": "#/components/schemas/BTDocumentMergeInfo" + } + } + } + } + }, + "deprecated": false, + "security": [ + { + "OAuth2": [ + "OAuth2Write" + ], + "BasicAuth": [ + "OAuth2Write" + ] + } + ], + "x-BTVisibility": "PRODUCTION" + } + }, "/elements/d/{did}/w/{wid}/e/{eid}": { "delete": { "tags": [ @@ -1042,14 +1260,35 @@ } }, "x-BTVisibility-properties": { - "versionDescription": "INTERNAL", - "versionId": "INTERNAL", "upgradeFeatureScriptVersion": "INTERNAL", + "documentVersions": "INTERNAL", "documentId": "INTERNAL", - "versionName": "INTERNAL", "preserveSourceIds": "INTERNAL" } }, + "BTBaseInfo": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "URI to fetch complete information of the resource.", + "format": "uri" + }, + "id": { + "type": "string", + "description": "Id of the resource." + }, + "name": { + "type": "string", + "description": "Name of the resource." + }, + "viewRef": { + "type": "string", + "description": "URI to visualize the resource in a webclient if applicable.", + "format": "uri" + } + } + }, "BTDocumentContentsInfo": { "type": "object", "properties": { @@ -1288,6 +1527,29 @@ } ] }, + "BTDocumentMergeInfo": { + "type": "object", + "properties": { + "libraryVersionMismatch": { + "type": "boolean" + }, + "overwrittenElements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BTDocumentElementInfo" + } + }, + "parentDocumentMicroversionId": { + "type": "string" + }, + "resultDocumentMicroversionId": { + "type": "string" + }, + "sourceDocumentMicroversionId": { + "type": "string" + } + } + }, "BTElementGroup-1458": { "type": "object", "properties": { @@ -1447,6 +1709,14 @@ } } }, + "BTMergeStrategy": { + "type": "string", + "enum": [ + "MERGE", + "KEEP", + "REPLACE" + ] + }, "BTModelElementParams": { "type": "object", "properties": { @@ -1455,6 +1725,15 @@ } } }, + "BTObjectState": { + "type": "string", + "enum": [ + "DELETED", + "TRASH", + "ACTIVE", + "INACTIVE" + ] + }, "BTThumbnailInfo": { "type": "object", "properties": { @@ -1509,6 +1788,62 @@ } } }, + "BTUserBasicSummaryInfo": { + "required": [ + "jsonType" + ], + "type": "object", + "properties": { + "jsonType": { + "type": "string" + } + }, + "discriminator": { + "propertyName": "jsonType", + "mapping": { + "user-summary": "#/components/schemas/BTUserBasicSummaryInfo", + "user-detail-summary": "#/components/schemas/BTUserDetailSummaryInfo" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/BTBaseInfo" + }, + { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "URI to fetch complete information of the resource.", + "format": "uri" + }, + "id": { + "type": "string", + "description": "Id of the resource." + }, + "image": { + "type": "string" + }, + "isOnshapeSupport": { + "type": "boolean" + }, + "name": { + "type": "string", + "description": "Name of the resource." + }, + "state": { + "type": "integer", + "format": "int32" + }, + "viewRef": { + "type": "string", + "description": "URI to visualize the resource in a webclient if applicable.", + "format": "uri" + } + } + } + ] + }, "BTVersionInfo": { "type": "object", "properties": { @@ -1566,6 +1901,26 @@ } } }, + "BTVersionOrWorkspaceMergeInfo": { + "type": "object", + "properties": { + "defaultMergeStrategy": { + "$ref": "#/components/schemas/BTMergeStrategy" + }, + "id": { + "type": "string" + }, + "mergeStrategyElementOverrides": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/BTMergeStrategy" + } + }, + "type": { + "type": "string" + } + } + }, "BTVersionOrWorkspaceParams": { "type": "object", "properties": { @@ -1613,6 +1968,91 @@ } } }, + "BTWorkspaceInfo": { + "type": "object", + "properties": { + "canDelete": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "creator": { + "$ref": "#/components/schemas/BTUserBasicSummaryInfo" + }, + "description": { + "type": "string" + }, + "documentId": { + "type": "string" + }, + "href": { + "type": "string", + "description": "URI to fetch complete information of the resource.", + "format": "uri" + }, + "id": { + "type": "string", + "description": "Id of the resource." + }, + "isReadOnly": { + "type": "boolean" + }, + "lastModifier": { + "$ref": "#/components/schemas/BTUserBasicSummaryInfo" + }, + "microversion": { + "type": "string" + }, + "modifiedAt": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string", + "description": "Name of the resource." + }, + "overrideDate": { + "type": "string", + "format": "date-time" + }, + "parent": { + "type": "string" + }, + "parents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BTVersionInfo" + } + }, + "protectionRule": { + "$ref": "#/components/schemas/BTWorkspaceProtectionRuleOptions" + }, + "state": { + "$ref": "#/components/schemas/BTObjectState" + }, + "thumbnail": { + "$ref": "#/components/schemas/BTThumbnailInfo" + }, + "type": { + "type": "string" + }, + "viewRef": { + "type": "string", + "description": "URI to visualize the resource in a webclient if applicable.", + "format": "uri" + } + } + }, + "BTWorkspaceProtectionRuleOptions": { + "type": "string", + "enum": [ + "OPEN", + "MERGE", + "FAST_FORWARD_MERGE" + ] + }, "BTZipFileInfo": { "type": "object", "properties": { diff --git a/onshape_api/types.py b/onshape_api/types.py index 23267c9e..f47571aa 100644 --- a/onshape_api/types.py +++ b/onshape_api/types.py @@ -71,6 +71,47 @@ class VersionInfo(TypedDict): id: str name: str description: NotRequired[str] + # The document's microversion it holds, which is its workspace's while nothing changed since + microversion: NotRequired[str] + + +# === workspaces === + + +class WorkspaceProtection(enum.StrEnum): + """Who may change a workspace. BTWorkspaceProtectionRuleOptions.""" + + OPEN = "OPEN" + MERGE = "MERGE" + FAST_FORWARD_MERGE = "FAST_FORWARD_MERGE" + + +class WorkspaceInfo(TypedDict): + """A workspace (a branch) of a document. BTWorkspaceInfo.""" + + id: str + name: str + description: NotRequired[str] + # The document's microversion it is at + microversion: str + # Unset (None) for a workspace no rule protects + protectionRule: NotRequired[str | None] + + +class MergeStrategy(enum.StrEnum): + """How a merge treats a tab changed in both workspaces. BTMergeStrategy.""" + + MERGE = "MERGE" + KEEP = "KEEP" + REPLACE = "REPLACE" + + +class MergeInfo(TypedDict): + """The result of a merge. BTDocumentMergeInfo.""" + + resultDocumentMicroversionId: str + # Set when the two workspaces are at different FeatureScript versions, which Onshape won't merge + libraryVersionMismatch: NotRequired[bool] # === feature studios === diff --git a/pyproject.toml b/pyproject.toml index 36edd1ae..f291320c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,6 +34,28 @@ frontend = "https://cad.onshape.com/documents/9cffa92db8b62219498f89af/w/06b332c github = "https://github.com/robot-education/robot-code" # The document `fs release --beta` publishes beta releases to. frontend_beta = "https://cad.onshape.com/documents/d6d83100b10be7a664fa2c84/w/7517d9bc30a444e88795c529" +# The git branch the backend's main workspace holds, changed only by merging (`fs sync-main`, which the Onshape workflow +# runs): every other branch pushes to a workspace of its own (see docs/fs-cli.md#branches). +main_branch = "main" + +# Part sets: Part Studios built from a definition in `folder`, whose FeatureScript is in the backend document but only +# they use. `fs parts --test` builds them there as ` (TEST)`; `fs parts --release` releases them into `main`, the +# FRCDesignLib document people insert them from (see docs/parts.md) +[tool.fs.parts.fasteners] +title = "Fasteners" +folder = "fasteners" +definition = "fastenerTables.py" +main = "https://cad.onshape.com/documents/77461d97ef7c9d816f0c7351" + +[tool.fs.parts.fasteners.targets] +test = "https://cad.onshape.com/documents/b82fec8aded5d7a705a3d658" # FRCDesignLib Test Document, for a local FRCDesignApp + +# FTC's metric fasteners: the same Feature Studio and tables, configured by their own definition, released into ConfigLib +[tool.fs.parts.ftcFasteners] +title = "FTC Fasteners" +folder = "fasteners" +definition = "ftcFastenerTables.py" +main = "https://cad.onshape.com/documents/d67349e2db0a99ac62c57a10" [tool.pytest.ini_options] testpaths = ["tests", "vscode-extension/server/tests"] diff --git a/releases/fasteners.toml b/releases/fasteners.toml new file mode 100644 index 00000000..7ffba4ec --- /dev/null +++ b/releases/fasteners.toml @@ -0,0 +1,3 @@ +part_set = "fasteners" +bump = "major" +description = "FRC fasteners generated by FeatureScript: screws, nuts and washers" diff --git a/releases/ftc-fasteners.toml b/releases/ftc-fasteners.toml new file mode 100644 index 00000000..18ca1b58 --- /dev/null +++ b/releases/ftc-fasteners.toml @@ -0,0 +1,3 @@ +part_set = "ftcFasteners" +bump = "major" +description = "FTC's metric fasteners generated by FeatureScript: screws, nuts and washers" diff --git a/tests/configured_studios_test.py b/tests/configured_studios_test.py new file mode 100644 index 00000000..9b41e9eb --- /dev/null +++ b/tests/configured_studios_test.py @@ -0,0 +1,589 @@ +import pytest + +from fs_cli.configured_studios import ( + ConfigureError, + ConfiguredStudio, + Input, + LookupTable, + Option, + build, + configuration_stages, + diagnose, + configured_studios, + read_locations, + write_locations, +) +from onshape_api.paths.paths import InstancePath + + +def studio() -> ConfiguredStudio: + return ConfiguredStudio( + "screw", + "fastenerScrew", + [ + Input("size", "Size", "size", [Option("A", "A", "A"), Option("B", "B", "B")], enum_name="Size"), + Input( + "length", + "Length", + "length", + [ + Option("L1", "1 in.", "1 in"), + Option("L2", "2 in.", "2 in", [{"size": "B"}]), + Option("L3", "3 in.", "3 in", [{"size": "A"}, {"size": "B"}]), + ], + kind="length", + ), + Input("washer", "Washer", "washer", kind="boolean"), + ], + ) + + +def test_inputs_are_checked(): + with pytest.raises(ValueError, match="duplicate"): + Input("size", "Size", "size", [Option("A", "A", "A"), Option("A", "A", "A")], enum_name="Size") + with pytest.raises(ValueError, match="identifier"): + Input("size", "Size", "size", [Option("1/4", "1/4", "A")], enum_name="Size") + with pytest.raises(ValueError, match="enum_name"): + Input("size", "Size", "size", [Option("A", "A", "A")]) + with pytest.raises(ValueError, match="checkbox"): + Input("washer", "Washer", "washer", [Option("A", "A", "A")], kind="boolean") + + +def test_options_show_only_with_earlier_inputs(): + size = Input("size", "Size", "size", [Option("A", "A", "A"), Option("C", "C", "C")], enum_name="Size") + + def length(shown_when): + return Input("length", "Length", "length", [Option("L", "L", "1 in"), Option("M", "M", "2 in", shown_when)], kind="length") + + with pytest.raises(ValueError, match="isn't before it"): + ConfiguredStudio("s", "f", [length([{"size": "A"}]), size]) + with pytest.raises(ValueError, match="unknown size=B"): + ConfiguredStudio("s", "f", [size, length([{"size": "B"}])]) + + +def test_a_default_must_show_with_its_parents_default(): + with pytest.raises(ValueError, match="default"): + ConfiguredStudio( + "screw", + "f", + [ + Input("size", "Size", "size", [Option("A", "A", "A"), Option("B", "B", "B")], enum_name="Size"), + Input( + "length", "Length", "length", [Option("L", "L", "1 in", [{"size": "B"}]), Option("M", "M", "2 in")], kind="length" + ), + ], + ) + + +def test_a_list_with_no_option_shown_is_hidden_so_its_default_needs_no_showing(): + hidden = ConfiguredStudio( + "screw", + "f", + [ + Input("size", "Size", "size", [Option("A", "A", "A"), Option("B", "B", "B")], enum_name="Size"), + Input("thread", "Thread", "thread", [Option("false", "No", "false", [{"size": "B"}]), Option("true", "Yes", "true", [{"size": "B"}])], kind="switch"), + ], + ) + assert hidden.combinations() == [{"size": "A"}, {"size": "B", "thread": "false"}, {"size": "B", "thread": "true"}] + assert hidden.configured_parameters()[1]["values"][1]["value"] == { + "btType": "BTMParameterBoolean-144", + "parameterId": "", + "value": True, + } + + +def equal(id, value): + return {"btType": "BTParameterVisibilityOnEqual-180", "parameterId": id, "value": value, "inArray": False} + + +def logical(operation, *children): + return {"btType": "BTParameterVisibilityLogical-178", "operation": operation, "children": list(children)} + + +def test_each_option_rule_is_an_and_of_inputs_each_one_of_some_values(): + length = studio().configuration_body()["configurationParameters"][1] + assert studio().configuration_body()["configurationParameters"][2] == { + "btType": "BTMConfigurationParameterBoolean-2550", + "parameterId": "washer", + "parameterName": "Washer", + "defaultValue": False, + } + assert length["enumName"] == "length_conf" + assert [option["option"] for option in length["options"]] == ["L1", "L2", "L3"] + assert length["enumOptionVisibilityConditions"]["visibilityConditions"] == [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": ["L2"], + "condition": logical("AND", logical("OR", equal("size", "B"))), + }, + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": ["L3"], + "condition": logical("AND", logical("OR", equal("size", "A"), equal("size", "B"))), + }, + # Onshape hides an option no rule controls, so the rest are shown always, as its UI ends its rules + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": ["L1"], + "condition": logical("AND", {"btType": "BTParameterVisibilityAlwaysShown-5487"}), + }, + ] + + +def test_products_are_factored_by_input_order(): + from fs_cli.configured_studios import _products + + # Sizes A and B both take heads X and Y, so they share a product + combinations = [{"size": size, "head": head} for size in "AB" for head in "XY"] + [{"size": "C", "head": "X"}] + assert _products(combinations, ["size", "head"]) == [ + {"size": ["A", "B"], "head": ["X", "Y"]}, + {"size": ["C"], "head": ["X"]}, + ] + assert _products([{"size": "A"}, {}], ["size"]) == [{}] + + +def test_a_product_leaves_out_an_input_its_combination_doesnt_name(): + from fs_cli.configured_studios import _products + + assert _products([{"size": "A", "head": "X"}, {"size": "B"}], ["size", "head"]) == [ + {"size": ["A"], "head": ["X"]}, + {"size": ["B"]}, + ] + assert _products([{"size": "A", "head": "X"}, {"head": "Y"}], ["size", "head"]) == [ + {"size": ["A"], "head": ["X"]}, + {"head": ["Y"]}, + ] + + +def test_products_match_exactly_the_combinations(): + from fs_cli.configured_studios import _products + + combinations = [{"v": "1", "s": "A", "h": "X"}, {"v": "1", "s": "B", "h": "X"}, {"v": "2", "s": "A", "h": "Y"}] + products = _products(combinations, ["v", "s", "h"]) + for v in "12": + for s in "AB": + for h in "XY": + selection = {"v": v, "s": s, "h": h} + matched = any(all(selection[id] in values for id, values in product.items()) for product in products) + assert matched == (selection in combinations) + + +def test_products_can_be_factored_by_a_later_input_first(): + from fs_cli.configured_studios import _products + + order = ConfiguredStudio("s", "f", finished().inputs, factor_first=["finish"])._factor_order() + assert order == ["finish", "size"] + shown = [{"size": size, "finish": "BLACK"} for size in "AB"] + assert _products(shown, order) == [{"finish": ["BLACK"], "size": ["A", "B"]}] + + +def test_a_checkbox_shows_by_one_condition(): + size = Input("size", "Size", "size", [Option("A", "A", "A"), Option("B", "B", "B")], enum_name="Size") + head = Input("head", "Head", "head", [Option("X", "X", "X"), Option("Y", "Y", "Y")], enum_name="Head") + one = Input("thread", "Thread", "thread", kind="boolean", shown_when=[{"size": "A", "head": head} for head in "XY"]) + parameter = ConfiguredStudio("s", "f", [size, head, one]).configuration_body()["configurationParameters"][2] + assert parameter["visibilityCondition"] == logical( + "AND", logical("OR", equal("size", "A")), logical("OR", equal("head", "X"), equal("head", "Y")) + ) + two = Input("thread", "Thread", "thread", kind="boolean", shown_when=[{"size": "A", "head": "X"}, {"size": "B", "head": "Y"}]) + with pytest.raises(ValueError, match="checkbox thread needs 2 conditions"): + ConfiguredStudio("s", "f", [size, head, two]) + + +def test_configured_parameters_set_each_option(): + size, length, washer = studio().configured_parameters() + assert [value["booleanValue"] for value in washer["values"]] == [False, True] + assert washer["values"][1]["value"] == {"btType": "BTMParameterBoolean-144", "parameterId": "", "value": True} + assert size["configurationParameterId"] == "size" + assert size["values"][1]["enumValue"] == "B" + assert size["values"][1]["value"] == { + "btType": "BTMParameterEnum-145", + "parameterId": "", + "namespace": "", + "enumName": "Size", + "value": "B", + } + assert length["values"][0]["value"] == { + "btType": "BTMParameterQuantity-147", + "parameterId": "", + "expression": "1 in", + } + + +def test_combinations_are_what_the_configuration_shows(): + # L1 shows with any size, L2 only with B, L3 with either + assert studio().combinations() == [ + {"size": "A", "length": "L1", "washer": "false"}, + {"size": "A", "length": "L1", "washer": "true"}, + {"size": "A", "length": "L3", "washer": "false"}, + {"size": "A", "length": "L3", "washer": "true"}, + {"size": "B", "length": "L1", "washer": "false"}, + {"size": "B", "length": "L1", "washer": "true"}, + {"size": "B", "length": "L2", "washer": "false"}, + {"size": "B", "length": "L2", "washer": "true"}, + {"size": "B", "length": "L3", "washer": "false"}, + {"size": "B", "length": "L3", "washer": "true"}, + ] + + +def finished() -> ConfiguredStudio: + return ConfiguredStudio( + "screw", + "f", + [ + Input("size", "Size", "size", [Option("A", "A", "A"), Option("B", "B", "B")], enum_name="Size"), + Input( + "finish", + "Finish", + "finish", + [Option("BLACK", "Black", "BLACK"), Option("ZINC", "Zinc", "ZINC", [{"size": "B"}])], + enum_name="Finish", + shown_when=[{"size": "B"}], + ), + ], + ) + + +def test_a_hidden_input_is_left_out_of_combinations(): + assert finished().combinations() == [{"size": "A"}, {"size": "B", "finish": "BLACK"}, {"size": "B", "finish": "ZINC"}] + + +def test_a_hidden_list_folds_its_visibility_into_its_options(): + finish = finished().configuration_body()["configurationParameters"][1] + assert "visibilityCondition" not in finish + assert finish["enumOptionVisibilityConditions"]["visibilityConditions"] == [ + { + "btType": "BTEnumOptionVisibilityForList-1613", + "controlledOptions": ["BLACK", "ZINC"], + "condition": logical("AND", logical("OR", equal("size", "B"))), + } + ] + + +def test_an_input_is_named_only_where_it_shows(): + def length(shown_when): + options = [Option("L", "L", "1 in"), Option("M", "M", "2 in", shown_when)] + return Input("length", "Length", "length", options, kind="length") + + # Finish shows only with size B + with pytest.raises(ValueError, match="finish=BLACK, which isn't shown there"): + ConfiguredStudio("s", "f", [*finished().inputs, length([{"finish": "BLACK"}])]) + with pytest.raises(ValueError, match="finish=ZINC, which isn't shown there"): + ConfiguredStudio("s", "f", [*finished().inputs, length([{"size": "A", "finish": "ZINC"}])]) + studio = ConfiguredStudio("s", "f", [*finished().inputs, length([{"size": "A"}, {"size": "B", "finish": "ZINC"}])]) + assert {"size": "A", "length": "M"} in studio.combinations() + assert {"size": "B", "finish": "BLACK", "length": "M"} not in studio.combinations() + + +def fixed() -> ConfiguredStudio: + return ConfiguredStudio( + "nut", + "f", + [ + Input("vendor", "Vendor", "vendor", [Option("M", "M", "M")], enum_name="Vendor"), + Input("size", "Size", "size", [Option("A", "A", "A"), Option("B", "B", "B")], enum_name="Size"), + ], + ) + + +def test_an_input_of_one_option_is_fixed_and_left_out_of_the_configuration(): + studio = fixed() + assert [input.id for input in studio.configured_inputs()] == ["size"] + assert [parameter["parameterId"] for parameter in studio.configuration_body()["configurationParameters"]] == ["size"] + assert [parameter["parameterId"] for parameter in studio.configured_parameters()] == ["size"] + # Set where the feature's inserted + assert studio.default_parameters()[0]["value"] == "M" + assert studio.combinations() == [{"size": "A"}, {"size": "B"}] + assert studio.defaults() == {"size": "A"} + + +def test_nothing_shows_by_a_fixed_input(): + with pytest.raises(ValueError, match="fixed, and shown nowhere"): + Input("vendor", "Vendor", "vendor", [Option("M", "M", "M", [{"size": "A"}])], enum_name="Vendor") + length = Input("length", "Length", "length", [Option("L", "L", "1 in"), Option("M", "M", "2 in", [{"vendor": "M"}])], kind="length") + with pytest.raises(ValueError, match="shows by vendor, which is fixed"): + ConfiguredStudio("s", "f", [*fixed().inputs, length]) + + +def enum_input(id: str, values: str, default: str | None = None) -> Input: + return Input(id, id.capitalize(), id, [Option(value, value, value) for value in values.split()], enum_name=id, default=default) + + +TABLE = LookupTable( + ("vendor", "size", "finish"), + [("A", "S1", "BLACK"), ("A", "S1", "ZINC"), ("A", "S2", "BLACK"), ("B", "S1", "BLACK")], +) + + +def test_a_lookup_table_shows_an_input_only_where_more_than_one_option_is_made(): + vendor = TABLE.input(enum_input("vendor", "A B C")) + size = TABLE.input(enum_input("size", "S1 S2")) + finish = TABLE.input(enum_input("finish", "BLACK ZINC")) + # C isn't made at all; B makes one size, and A one finish in S2 + assert [(option.id, option.shown_when) for option in vendor.options] == [("A", None), ("B", None)] + assert [(option.id, option.shown_when) for option in size.options] == [("S1", [{"vendor": "A"}]), ("S2", [{"vendor": "A"}])] + assert [option.shown_when for option in finish.options] == [[{"vendor": "A", "size": "S1"}]] * 2 + # A configuration is the choices shown, and so is each thing made + assert TABLE.shown(("B", "S1", "BLACK")) == {"vendor": "B"} + assert TABLE.shown(("A", "S2", "BLACK")) == {"vendor": "A", "size": "S2"} + assert TABLE.shown(("A", "S1", "ZINC")) == {"vendor": "A", "size": "S1", "finish": "ZINC"} + studio = ConfiguredStudio("s", "f", [vendor, size, finish]) + assert sorted(map(str, studio.combinations())) == sorted( + str(TABLE.shown(key)) for key in [("A", "S1", "BLACK"), ("A", "S1", "ZINC"), ("A", "S2", "BLACK"), ("B", "S1", "BLACK")] + ) + + +def test_a_lookup_table_fixes_an_input_never_shown(): + table = LookupTable(("vendor", "size"), [("M", "S1"), ("M", "S2")]) + vendor = table.input(enum_input("vendor", "G M", default="G")) + assert vendor.fixed and vendor.options[0].id == "M" + assert table.shown(("M", "S2")) == {"size": "S2"} + + +def test_a_lookup_table_needs_an_option_for_everything_made(): + with pytest.raises(ValueError, match=r"no option for \['B'\]"): + TABLE.input(enum_input("vendor", "A")) + with pytest.raises(ValueError, match="default 'S3'"): + TABLE.input(enum_input("size", "S1 S2 S3", default="S3")) + + +def test_manifest_holds_the_configuration_onshape_answers(): + manifest = studio().manifest() + assert manifest["configuration"] == studio().configuration_body() + assert "inputs" not in manifest + + +def test_configured_studios_searches_nested_maps(): + found = studio() + assert configured_studios({"STUDIOS": {"frc": {"screw": found}}}) == [found] + assert configured_studios({}) == [] + + +def test_locations_are_recorded_beside_the_definition(tmp_path): + definition = tmp_path / "partTables.py" + assert read_locations(definition) == {} + write_locations(definition, "doc", {"screw": "e1"}) + assert (tmp_path / "partTables.studios.json").is_file() + assert read_locations(definition) == {"screw": {"documentId": "doc", "elementId": "e1"}} + + +class FakeApi: + """A workspace's Part Studios, by name, each with its features.""" + + def __init__(self, tabs: dict[str, list[dict]], status: str = "OK", stored_namespace: str | None = None): + self.tabs = {f"e{index}": (name, features) for index, (name, features) in enumerate(tabs.items())} + self.status = status + # What Onshape stores an inserted feature's namespace, and its enums', as; as sent when None + self.stored_namespace = stored_namespace + self.requests = [] + + def delete(self, path, **kwargs): + self.requests.append(("DELETE", path, None)) + element_id = path.split("/e/")[1].split("/")[0] + feature_id = path.rsplit("/", 1)[1] + features = self.tabs[element_id][1] + features[:] = [feature for feature in features if feature["featureId"] != feature_id] + + def get(self, path, **kwargs): + self.requests.append(("GET", path, None)) + if path.endswith("/elements"): + return [{"id": id, "name": name} for id, (name, _) in self.tabs.items()] + element_id = path.split("/e/")[1].split("/")[0] + return {"features": self.tabs[element_id][1], "sourceMicroversion": f"mv{len(self.requests)}"} + + def post(self, path, body="", **kwargs): + self.requests.append(("POST", path, body)) + if path == "/partstudios/d/d/w/w": + self.tabs["new"] = (body["name"], []) + return {"id": "new"} + if path.endswith("/configuration"): + return body + if path.endswith("/features"): + element_id = path.split("/e/")[1].split("/")[0] + feature = {**body["feature"], "featureId": "F"} + if self.stored_namespace is not None: + feature["namespace"] = self.stored_namespace + feature["parameters"] = [ + {**parameter, "namespace": self.stored_namespace} if "namespace" in parameter else parameter + for parameter in feature["parameters"] + ] + self.tabs[element_id][1].append(feature) + return {"featureState": {"featureStatus": self.status}} + + +WORKSPACE = InstancePath("d", "w") + + +def test_build_creates_the_tab_then_its_configuration_then_inserts_its_feature_and_configures_it(): + api = FakeApi({"Other": []}) + built = build(api, WORKSPACE, studio(), "fs", "fsmv") + + assert (built.element_id, built.created, built.status) == ("new", True, "OK") + posts = [(path, body) for method, path, body in api.requests if method == "POST"] + assert [path for path, _ in posts] == [ + "/partstudios/d/d/w/w", + "/elements/d/d/w/w/e/new/configuration", + "/partstudios/d/d/w/w/e/new/features", + "/partstudios/d/d/w/w/e/new/features/featureid/F", + ] + assert posts[0][1] == {"name": "Screw"} + configuration = posts[1][1] + assert [parameter["parameterId"] for parameter in configuration["configurationParameters"]] == ["size", "length", "washer"] + inserted = posts[2][1]["feature"] + assert inserted["featureType"] == "fastenerScrew" + assert inserted["namespace"] == "efs::mfsmv" + assert [parameter["btType"] for parameter in inserted["parameters"]] == [ + "BTMParameterEnum-145", + "BTMParameterQuantity-147", + "BTMParameterBoolean-144", + ] + # Its enums are defined in its FeatureScript, so their values name its namespace too + assert (inserted["parameters"][0]["enumName"], inserted["parameters"][0]["namespace"]) == ("Size", "efs::mfsmv") + configured = posts[3][1]["feature"] + assert [parameter["btType"] for parameter in configured["parameters"]] == ["BTMParameterConfigured-2222"] * 3 + size = configured["parameters"][0]["values"][0]["value"] + assert (size["enumName"], size["namespace"]) == ("Size", "efs::mfsmv") + + +def test_build_refuses_a_configuration_onshape_renamed(): + class Renaming(FakeApi): + def post(self, path, body="", **kwargs): + if path.endswith("/configuration"): + return {"configurationParameters": [{"parameterId": "List_abc", "enumName": "List_abc_conf"}]} + return super().post(path, body, **kwargs) + + with pytest.raises(ConfigureError, match="Onshape stored Screw's configuration inputs as"): + build(Renaming({}), WORKSPACE, studio(), "fs", "fsmv") + + +def test_build_replaces_the_feature_a_build_inserted_before(): + feature = { + "featureId": "F1", + "featureType": "fastenerScrew", + "namespace": "efs::mold", + "parameters": [{"btType": "BTMParameterEnum-145", "parameterId": "size", "value": "A"}], + } + api = FakeApi({"Screw": [{"featureId": "S", "featureType": "newSketch"}, feature]}) + built = build(api, WORKSPACE, studio(), "fs", "fsmv") + + assert (built.element_id, built.created) == ("e0", False) + writes = [(method, path) for method, path, _ in api.requests if method != "GET"] + # Deleted first: Onshape refuses a configuration which leaves its configured parameters naming options it lacks + assert writes == [ + ("DELETE", "/partstudios/d/d/w/w/e/e0/features/featureid/F1"), + ("POST", "/elements/d/d/w/w/e/e0/configuration"), + ("POST", "/partstudios/d/d/w/w/e/e0/features"), + ("POST", "/partstudios/d/d/w/w/e/e0/features/featureid/F"), + ] + [update] = [body for _, path, body in api.requests if path.endswith("/featureid/F")] + # The feature list's, read after the insert + assert update["sourceMicroversion"] == "mv6" + assert update["feature"]["namespace"] == "efs::mfsmv" + parameters = update["feature"]["parameters"] + assert [parameter["parameterId"] for parameter in parameters] == ["size", "length", "washer"] + assert all(parameter["btType"] == "BTMParameterConfigured-2222" for parameter in parameters) + + +def test_build_configures_a_feature_in_the_namespaces_onshape_stored(): + # As from a Feature Studio re-exporting another document's: Onshape stores where it's defined + stored = "dback::vver::eback::mbackmv" + api = FakeApi({}, stored_namespace=stored) + build(api, WORKSPACE, studio(), "fs", "fsmv") + + [update] = [body for _, path, body in api.requests if path.endswith("/featureid/F")] + assert update["feature"]["namespace"] == stored + size = update["feature"]["parameters"][0]["values"][0]["value"] + assert (size["enumName"], size["namespace"]) == ("Size", stored) + + +def test_build_reports_a_feature_that_fails_to_regenerate(): + assert build(FakeApi({}, status="ERROR"), WORKSPACE, studio(), "fs", "fsmv").status == "ERROR" + + +def test_build_refuses_two_tabs_or_features_of_its_kind(): + with pytest.raises(ConfigureError, match="2 Part Studios named Screw"): + api = FakeApi({}) + api.tabs = {"a": ("Screw", []), "b": ("Screw", [])} + build(api, WORKSPACE, studio(), "fs", "fsmv") + twice = [{"featureId": id, "featureType": "fastenerScrew", "parameters": []} for id in ("F1", "F2")] + with pytest.raises(ConfigureError, match="2 fastenerScrew features"): + build(FakeApi({"Screw": twice}), WORKSPACE, studio(), "fs", "fsmv") + + +def test_build_says_which_step_onshape_refused(): + from onshape_api.exceptions import ApiError + + class Refusing(FakeApi): + def post(self, path, body="", **kwargs): + if path.endswith("/features"): + raise ApiError("The change would result in the feature list becoming invalid", 409) + return super().post(path, body, **kwargs) + + with pytest.raises(ConfigureError, match="Onshape refused to insert fastenerScrew in Screw: .*feature list"): + build(Refusing({}), WORKSPACE, studio(), "fs", "fsmv") + + +def test_configuration_stages_add_each_inputs_conditions_in_turn(): + stages = configuration_stages(studio()) + full = studio().configuration_body() + assert stages[0][1]["configurationParameters"] == [] + assert all("visibilityCondition" not in parameter and "enumOptionVisibilityConditions" not in parameter + for parameter in stages[1][1]["configurationParameters"]) + assert stages[-1][1] == full + assert [len(body["configurationParameters"]) for _, body in stages[1:]] == [3] * (len(stages) - 1) + + +def test_diagnose_names_the_first_stage_onshape_refuses(): + from onshape_api.exceptions import ApiError + + class Refusing(FakeApi): + def post(self, path, body="", **kwargs): + if path.endswith("/configuration") and any( + "enumOptionVisibilityConditions" in parameter or "visibilityCondition" in parameter + for parameter in body["configurationParameters"] + ): + raise ApiError("The change would result in the feature list becoming invalid", 409) + return super().post(path, body, **kwargs) + + api = Refusing({"Screw (TEST)": [{"featureType": "fastenerScrew"}]}) + diagnosis = diagnose(api, WORKSPACE, studio(), "Screw (TEST)") + assert diagnosis.features == ["fastenerScrew"] + assert diagnosis.accepted == ["an empty configuration", "the inputs, with no conditions"] + assert diagnosis.refused is not None and "feature list becoming invalid" in diagnosis.refused[1] + assert diagnosis.element_id == "new" + + +def test_problems_are_none_for_a_studio_kept_to_the_rules(): + assert studio().problems() == [] + assert finished().problems() == [] + assert ConfiguredStudio("s", "f", [TABLE.input(enum_input(id, values)) for id, values in [("vendor", "A B"), ("size", "S1 S2"), ("finish", "BLACK ZINC")]]).problems() == [] + + +def test_problems_name_an_input_shown_with_one_option(): + one = ConfiguredStudio( + "s", + "f", + [ + Input("size", "Size", "size", [Option("A", "A", "A"), Option("B", "B", "B")], enum_name="Size"), + Input("finish", "Finish", "finish", [Option("X", "X", "X"), Option("Y", "Y", "Y", [{"size": "B"}])], enum_name="Finish"), + ], + ) + assert one.problems() == ["s: finish shows one option, X, with {'size': 'A'}"] + + +def test_problems_name_a_condition_onshape_refuses(): + from fs_cli.configured_studios import _condition_problems + + options = {"size": ["A", "B"]} + assert _condition_problems(logical("AND", logical("OR", equal("size", "A"))), {"size"}, options) == [] + assert _condition_problems(logical("OR", equal("size", "A")), {"size"}, options) == ["a condition isn't an AND"] + assert _condition_problems(logical("AND", logical("OR", equal("size", "C"))), {"size"}, options) == [ + "a condition names size's options ['C'], not each one of its options once" + ] + assert _condition_problems(logical("AND", logical("OR", equal("size", "A"))), set(), options) == [ + "a condition names size, which isn't a configured input before it" + ] + assert _condition_problems(logical("AND", logical("OR", equal("size", "A"), equal("head", "X"))), {"size"}, options) == [ + "an OR isn't of one input's options", + "a condition names no input", + ] diff --git a/tests/featurescript/fasteners_manifest_test.py b/tests/featurescript/fasteners_manifest_test.py new file mode 100644 index 00000000..fc151f74 --- /dev/null +++ b/tests/featurescript/fasteners_manifest_test.py @@ -0,0 +1,494 @@ +"""Checks of fastenerTables.py: what it reads from FRCDesign's snapshot and FTC's vendors, the configurations it lays +out for each part set, and the manifests it writes for FRCDesign (FRC's, and FTC's through ftcFastenerTables.py).""" + +import json +import pathlib +import runpy +from fractions import Fraction + +import pytest + +from fs_cli.configured_studios import input_shows, shows + +FOLDER = pathlib.Path(__file__).parents[2] / "featurescripts" / "fasteners" +DEFINITION = runpy.run_path(str(FOLDER / "fastenerTables.py")) +MANIFEST = json.loads((FOLDER / "fasteners.gen.json").read_text()) +FTC_MANIFEST = json.loads((FOLDER / "ftcFasteners.gen.json").read_text()) +FTC_DEFINITION = runpy.run_path(str(FOLDER / "ftcFastenerTables.py")) +CATALOGS = {"frc": DEFINITION["FRC"], "ftc": DEFINITION["FTC"]} +MANIFESTS = {"frc": MANIFEST, "ftc": FTC_MANIFEST} + + +STANDARD = DEFINITION["STANDARD"] +Variant = DEFINITION["Variant"] + + +def test_store_screws_replace_the_snapshots(): + screws = DEFINITION["SCREWS"] + wcp_button = screws[("WCP", "NO_10_32", "BUTTON")] + # The group's 3/4 in. is WCP-0254, which WCP no longer lists + assert wcp_button[Fraction(3, 4)][STANDARD].part_number == "WCP-0135" + assert wcp_button[Fraction(3, 4)][STANDARD].url == "https://wcproducts.com/products/wcp-0135" + # Sizes the group has none of from WCP, and its aluminum screws, but none of its ultra low profile ones + assert screws[("WCP", "NO_8_32", "BUTTON")][Fraction(1, 2)][STANDARD].part_number == "WCP-0250" + aluminum = wcp_button[Fraction(1, 4)][Variant("ALUMINUM")] + assert (aluminum.part_number, aluminum.material.name) == ("WCP-2110", "Aluminum - 6061") + assert ("WCP", "NO_10_32", "FLAT") not in screws + assert screws[("ANDYMARK", "QUARTER_20", "BUTTON")][Fraction(1)][STANDARD].part_number == "am-1525" + + +def test_a_store_screw_without_a_thread_lock_patch_is_preferred(): + # AndyMark sells #10-32 x 1/2 in. socket heads with (am-1744) and without (am-1002) one + socket = DEFINITION["SCREWS"][("ANDYMARK", "NO_10_32", "SOCKET")] + assert socket[Fraction(1, 2)][STANDARD].part_number == "am-1002" + + +def test_store_titles_parse(): + wcp, andymark = DEFINITION["_STORE_SCREWS"]["WCP"], DEFINITION["_STORE_SCREWS"]["ANDYMARK"] + steel = wcp.match('#10-32 x 4.750 L BHCS (Steel, Black Oxide) (25-Pack)') + assert steel.groupdict() == {"size": "#10-32", "length": "4.750", "head": "BHCS", "finish": "Steel, Black Oxide"} + # A Kraken's spares, whose drive isn't a hex socket + assert wcp.match('#4-40 x 1/4" BHCS (IP8, Kraken CAN Terminal) (25-Pack)') is None + assert wcp.match('#10-32 x .250" L BHCS (Aluminum, Anodized) (25-Pack)')["finish"] == "Aluminum, Anodized" + assert wcp.match('#10-32 x .375" L SHCS (Steel, Ultra Low Profile) (2-Pack)') is None + patched = andymark.match("10-32 x 3/8 in. Button Head Cap Screw with Nylon Patch") + assert patched.groupdict() == { + "size": "10-32", + "length": "3/8", + "head": "Button Head Cap Screw", + "patch": " with Nylon Patch", + } + assert andymark.match("1/4-20 x 1 in. Pan Head Phillips Screw") is None + + +def test_only_a_stores_catalog_screws_are_kept(): + store_screw = DEFINITION["_store_screw"] + + def product(title: str, sku: str = "am-1", url: str = "https://andymark.com/products/x") -> dict: + return {"store": "andymark.com", "title": title, "sku": sku, "url": url} + + assert store_screw(product("10-32 x 0.5 in. Socket Head Cap Screw")) is not None + # Listed again to ship from abroad, metric, or not a cap screw + assert store_screw(product("Ships from Sydney - 10-32 x 0.5 in. Socket Head Cap Screw", "am-1AUS")) is None + assert store_screw(product("M3-0.5 x 10 mm Socket Head Cap Screw")) is None + assert store_screw(product("10-12 x 1.25 in. Self Piercing Hex Head Cap Screw")) is None + # A zinc plated one, named so only in its url + zinc = store_screw(product("1/4-20 x 0.75 in. Button Head Cap Screw", url="https://andymark.com/products/screw-bhcs-1-4-20-x-750-zinc")) + assert zinc.variant == Variant("ZINC_PLATED") + + +def test_the_stores_snapshot_holds_only_catalog_screws(): + snapshot = json.loads(DEFINITION["STORES_SNAPSHOT"].read_text()) + assert all( + DEFINITION["_store_screw"](product) is not None or DEFINITION["_metric_store_screw"](product) is not None + for product in snapshot["products"] + ) + + +def test_screws_come_from_the_snapshot(): + screws = DEFINITION["FRC"].screws + rev_button = screws[("REV", "NO_10_32", "BUTTON")] + assert rev_button[Fraction(3, 8)][STANDARD].part_number == "REV-29-2941-PK50" + assert rev_button[Fraction(3, 8)][Variant("ZINC_PLATED")].part_number == "REV-29-1221-PK100" + # REV only makes #10-32 + assert {size for vendor, size, _ in screws if vendor == "REV"} == {"NO_10_32"} + # Generic makes every length anyone does, without part numbers, and only in the standard variant + generic = screws[("GENERIC", "NO_10_32", "BUTTON")] + assert set(rev_button) <= set(generic) + assert all(list(variants) == [STANDARD] for variants in generic.values()) + assert all(variants[STANDARD].part_number is None for variants in generic.values()) + + +def test_mcmaster_carrs_long_socket_heads_come_fully_threaded_too(): + socket = DEFINITION["SCREWS"][("MCMASTER", "NO_8_32", "SOCKET")] + assert socket[Fraction(2)][STANDARD].part_number == "91251A205" + assert socket[Fraction(2)][Variant(full_thread=True)].part_number == "90044A113" + assert list(socket[Fraction(1, 2)]) == [STANDARD, Variant("ZINC_PLATED")] + + +@pytest.mark.parametrize("part_set", CATALOGS) +def test_fully_threaded_shows_only_where_a_length_is_sold_both_ways(part_set): + screw = CATALOGS[part_set].studios["screw"] + fully_threaded = next(input for input in screw.inputs if input.id == "fullyThreaded") + assert screw.inputs[-1] is fully_threaded and fully_threaded.kind == "switch" + length_id = DEFINITION["length_id"] + for (vendor, size, head), stocked in CATALOGS[part_set].screws.items(): + for length, variants in stocked.items(): + for variant in variants: + selection = { + "vendor": vendor, + "size": size, + "head": head, + "finish": variant.finish, + "length": length_id(length), + } + both = Variant(variant.finish) in variants and Variant(variant.finish, True) in variants + shown = [option.id for option in fully_threaded.options if shows(option, selection)] + assert shown == (["false", "true"] if both else []), selection + + +def test_finish_comes_between_head_and_length_and_shows_where_theres_a_choice(): + screw = DEFINITION["STUDIOS"]["screw"] + assert [input.id for input in screw.inputs] == ["vendor", "size", "head", "finish", "length", "fullyThreaded"] + finish = screw.inputs[3] + # Generic's are black alone + generic = {"vendor": "GENERIC", "size": "NO_10_32", "head": "BUTTON"} + assert [option.id for option in finish.options if shows(option, generic)] == [] + mcmaster = {"vendor": "MCMASTER", "size": "NO_10_32", "head": "BUTTON"} + assert [option.id for option in finish.options if shows(option, mcmaster)] == ["BLACK", "ZINC_PLATED"] + + +def test_washer_finishes(): + washers = DEFINITION["WASHERS"] + assert washers[("MCMASTER", "NO_10_32", "OD_7_16_X_0_03", "BLACK")].stock.part_number == "96765A125" + plain = washers[("MCMASTER", "NO_10_32", "OD_7_16_X_0_03", "STAINLESS")] + assert (plain.stock.part_number, plain.stock.material.name) == ("92141A011", "Stainless Steel") + # WCP's black zinc washers are its standard black, and AndyMark's zink finish is zinc plating + assert ("WCP", "NO_10_32", "OD_3_8_X_0_031", "BLACK") in washers + assert washers[("ANDYMARK", "NO_10_32", "OD_3_4_X_0_062", "ZINC_PLATED")].stock.part_number == "am-1523" + records = {tuple(record["values"].values()): record for record in MANIFEST["studios"]["washer"]["records"]} + assert records[("MCMASTER", "NO_10_32", "OD_7_16_X_0_03", "STAINLESS")]["name"] == ( + "#10 Washer (7/16 in OD x 0.03 in, Stainless steel)" + ) + # Generic makes one washer in each size, so its type and finish are hidden + assert records[("GENERIC", "NO_10_32")]["name"] == "#10 Washer (1/2 in OD x 0.049 in)" + + +def test_andymarks_washers_take_their_stated_bores(): + washers = DEFINITION["WASHERS"] + quarter = washers[("ANDYMARK", "QUARTER_20", "OD_5_8_X_0_063", "ZINC_PLATED")] + # FRCDesign's record names it 0.625", its outer diameter + assert (quarter.stock.part_number, quarter.inner_diameter) == ("am-1027", 0.281) + assert washers[("ANDYMARK", "QUARTER_20", "OD_3_X_0_06", "ZINC_PLATED")].inner_diameter == 0.252 + # Bores no screw here fits are left out + assert {washer.stock.part_number for key, washer in washers.items() if key[0] == "ANDYMARK"} == { + "am-1658", + "am-1523", + "am-1575", + "am-1628", + "am-1027", + "am-1421", + } + + +@pytest.mark.parametrize("part_set", CATALOGS) +def test_lengths_show_only_where_theyre_made(part_set): + screw = CATALOGS[part_set].studios["screw"] + length = next(input for input in screw.inputs if input.id == "length") + for (vendor, size, head), stocked in CATALOGS[part_set].screws.items(): + for finish in {variant.finish for variants in stocked.values() for variant in variants}: + selection = {"vendor": vendor, "size": size, "head": head, "finish": finish} + shown = {option.id for option in length.options if shows(option, selection)} + made = {DEFINITION["length_id"](each) for each, variants in stocked.items() if Variant(finish) in variants} + # Hidden where there's one, like REV's zinc plated #10-32 flat heads + assert shown == (made if len(made) > 1 else set()), selection + + +def test_length_names_and_ids(): + assert DEFINITION["length_id"](Fraction(3, 8)) == "IN_0_375" + assert DEFINITION["length_name"](Fraction(3, 8)) == "3/8 in" + assert DEFINITION["length_name"](Fraction(5, 4)) == "1-1/4 in" + assert DEFINITION["length_name"](Fraction(2)) == "2 in" + assert DEFINITION["parse_inches"]("1-1/4") == Fraction(5, 4) + assert DEFINITION["parse_inches"]("0.031") == Fraction("0.031") + + +@pytest.mark.parametrize("part_set", MANIFESTS) +def test_washers_and_nuts_fit_their_screws(part_set): + manifest = MANIFESTS[part_set] + by_id = {size["id"]: size for size in manifest["sizes"]} + for washer in manifest["washers"]: + # goBILDA's M4 washers have a 4 mm bore, a slip fit + assert washer["innerDiameter"] >= by_id[washer["size"]]["majorDiameter"] + assert washer["outerDiameter"] > washer["innerDiameter"] + for nut in manifest["nuts"]: + assert nut["acrossFlats"] > by_id[nut["size"]]["majorDiameter"] + for size in manifest["sizes"]: + assert size["tapDrillDiameter"] < size["majorDiameter"] < size["closeClearanceDiameter"] + assert size["closeClearanceDiameter"] < size["freeClearanceDiameter"] + + +@pytest.mark.parametrize("part_set", CATALOGS) +@pytest.mark.parametrize("kind", ["screw", "nut", "washer"]) +def test_each_configuration_has_one_record(part_set, kind): + """FRCDesignApp indexes these instead of asking Onshape, so they must be exactly what the configuration offers.""" + records = [record["values"] for record in MANIFESTS[part_set]["studios"][kind]["records"]] + assert sorted(map(str, records)) == sorted(map(str, CATALOGS[part_set].studios[kind].combinations())) + + +def test_records_name_and_sell_each_part(): + records = {tuple(record["values"].values()): record for record in MANIFEST["studios"]["screw"]["records"]} + mcmaster = records[("MCMASTER", "NO_10_32", "BUTTON", "BLACK", "IN_0_5")] + assert mcmaster["name"] == "#10-32 x 1/2 in Button Head Screw" + assert mcmaster["vendor"] == "McMaster-Carr" + assert mcmaster["partNumber"] == "91255A265" + assert mcmaster["material"] == "Steel" + zinc = records[("MCMASTER", "NO_10_32", "BUTTON", "ZINC_PLATED", "IN_0_5")] + assert zinc["name"] == "#10-32 x 1/2 in Button Head Screw (Zinc plated)" + full = records[("MCMASTER", "NO_8_32", "SOCKET", "BLACK", "IN_2", "true")] + assert (full["name"], full["partNumber"]) == ("#8-32 x 2 in Socket Head Screw (Fully threaded)", "90044A113") + assert records[("MCMASTER", "NO_8_32", "SOCKET", "BLACK", "IN_2", "false")]["partNumber"] == "91251A205" + # Generic parts have no vendor or part number, and only one finish, which is hidden + generic = records[("GENERIC", "NO_10_32", "BUTTON", "IN_0_5")] + assert "vendor" not in generic and "partNumber" not in generic + + +# The configuration rules (see docs/fs-cli.md's "Configured Part Studios"), checked on each studio as generated + +KINDS = ["screw", "nut", "washer"] +STUDIOS = [(part_set, kind) for part_set in CATALOGS for kind in KINDS] + + +def _table(part_set: str, kind: str): + catalog = CATALOGS[part_set] + return {"screw": catalog.screw_table, "nut": catalog.nut_table, "washer": catalog.washer_table}[kind] + + +def _made(part_set: str, kind: str) -> list[tuple]: + catalog = CATALOGS[part_set] + if kind == "screw": + return [record[:5] for record in catalog.records["screw"]] + return list(catalog.nuts if kind == "nut" else catalog.washers) + + +def test_each_set_offers_its_own_sizes(): + assert {key[1] for key in DEFINITION["FRC"].screws} == DEFINITION["IMPERIAL"] + assert {key[1] for key in DEFINITION["FTC"].screws} == DEFINITION["METRIC"] + assert [size["id"] for size in FTC_MANIFEST["sizes"]] == ["M3", "M4"] + assert FTC_DEFINITION["STUDIOS"].keys() == {"screw", "nut", "washer"} + + +@pytest.mark.parametrize("part_set,kind", STUDIOS) +def test_each_studio_keeps_to_the_configuration_rules(part_set, kind): + """What `fs parts` checks before it sends anything to Onshape.""" + assert CATALOGS[part_set].studios[kind].problems() == [] + + +@pytest.mark.parametrize("part_set,kind", STUDIOS) +def test_an_input_shows_only_with_a_choice_of_options(part_set, kind): + studio = CATALOGS[part_set].studios[kind] + for combination in studio.combinations(): + for input in studio.configured_inputs(): + shown = [option.id for option in input.options if input_shows(input, combination) and shows(option, combination)] + assert len(shown) != 1, (input.id, combination) + assert (input.id in combination) == bool(shown), (input.id, combination) + + +@pytest.mark.parametrize("part_set,kind", STUDIOS) +def test_a_hidden_input_has_one_option_made_where_its_hidden(part_set, kind): + """So the feature resolves it to that one, whatever value Onshape's configuration holds.""" + table, made = _table(part_set, kind), _made(part_set, kind) + for key in made: + shown = table.shown(key) + for index, id in enumerate(table.ids): + if id not in shown: + assert {other[index] for other in made if other[:index] == key[:index]} == {key[index]}, (id, key) + + +def _resolve(entries: dict, value: str) -> str | None: + """As fasteners.fs's `resolve`: `value` where it's made, or the one option made, a size of its own set's.""" + if value in entries: + return value + sets = [DEFINITION["IMPERIAL"], DEFINITION["METRIC"]] + own = next((sizes for sizes in sets if value in sizes), None) + options = [option for option in entries if own is None or option in own] + return options[0] if len(options) == 1 else None + + +def _feature_table(kind: str) -> dict: + """What the feature reads: both sets' parts, nested by the table's columns.""" + table: dict = {} + for key in {record[:5] if kind == "screw" else record for record in DEFINITION["ALL_RECORDS"][kind]}: + level = table + for option in key: + level = level.setdefault(option, {}) + return table + + +@pytest.mark.parametrize("part_set,kind", STUDIOS) +def test_the_feature_resolves_whatever_a_hidden_input_holds(part_set, kind): + """From the tables both sets share: a hidden input holds any option of its studio's, or a fixed one its default.""" + studio, table = CATALOGS[part_set].studios[kind], _table(part_set, kind) + inputs = {input.id: input for input in studio.inputs} + tables = _feature_table(kind) + for key in _made(part_set, kind): + shown = table.shown(key) + for index, id in enumerate(table.ids): + if id in shown: + continue + held = [inputs[id].default_option] if inputs[id].fixed else [option.id for option in inputs[id].options] + for value in held: + level = tables + for column, option in enumerate(key): + resolved = _resolve(level, value if column == index else option) + assert resolved == option, (id, value, key) + level = level[resolved] + + +@pytest.mark.parametrize("part_set,kind", STUDIOS) +def test_every_option_is_controlled_by_a_rule(part_set, kind): + """Onshape hides every option no rule controls, once an input has any rule.""" + for parameter in CATALOGS[part_set].studios[kind].configuration_body()["configurationParameters"]: + rules = parameter.get("enumOptionVisibilityConditions", {}).get("visibilityConditions", []) + if rules: + controlled = {option for rule in rules for option in rule["controlledOptions"]} + assert controlled == {option["option"] for option in parameter["options"]}, parameter["parameterId"] + + +@pytest.mark.parametrize("part_set,kind", STUDIOS) +def test_each_default_shows_with_the_others(part_set, kind): + """Onshape refuses a configuration whose default hides an input's default while it shows others.""" + studio = CATALOGS[part_set].studios[kind] + selection: dict[str, str] = {} + for input in studio.configured_inputs(): + shown = [option.id for option in input.options if input_shows(input, selection) and shows(option, selection)] + if shown: + assert input.default_option in shown, input.id + selection[input.id] = input.default_option + assert selection in studio.combinations() + + +def test_defaults_are_whats_inserted_most(): + assert DEFINITION["STUDIOS"]["screw"].defaults() == { + "vendor": "GENERIC", + "size": "NO_10_32", + "head": "BUTTON", + "finish": "BLACK", + "length": "IN_0_375", + "fullyThreaded": "false", + } + assert DEFINITION["STUDIOS"]["nut"].defaults() == {"size": "NO_10_32", "type": "NYLOCK"} + assert DEFINITION["STUDIOS"]["washer"].defaults() == { + "vendor": "MCMASTER", + "size": "NO_10_32", + "type": "OD_7_16_X_0_03", + "finish": "STAINLESS", + } + + +def test_one_nut_vendor_is_fixed(): + vendor = DEFINITION["STUDIOS"]["nut"].inputs[0] + assert vendor.fixed and vendor.options[0].id == "MCMASTER" + assert all("vendor" not in record["values"] for record in MANIFEST["studios"]["nut"]["records"]) + + +@pytest.mark.parametrize("kind", KINDS) +def test_each_feature_makes_one_mate_connector(kind): + """FRCDesignApp fastens to a generated studio's feature by its id, which names the one connector it makes.""" + feature = DEFINITION["STUDIOS"][kind].feature + code = (FOLDER / "fasteners.fs").read_text() + start = code.index(f"export const {feature} = defineFeature(") + end = code.index("\n });\n", start) + body = code[start:end] + assert body.count("opMateConnector(") + body.count("addSeatMateConnector(") == 1 + assert "for (" not in body and "while (" not in body + + +# FTC's metric catalog (docs/ftc-fasteners.md) + +Millimeters = DEFINITION["Millimeters"] + + +def _ftc_records(kind: str) -> dict[tuple, dict]: + return {tuple(record["values"].values()): record for record in FTC_MANIFEST["studios"][kind]["records"]} + + +def test_mcmaster_carrs_metric_screws_take_the_cheapest_small_pack(): + socket = DEFINITION["FTC"].screws[("MCMASTER", "M4", "SOCKET")] + # 18-8 M4 x 10: its imported small pack, not its 2,000 + assert socket[Millimeters(10)][Variant("STAINLESS")].part_number == "91292A116" + # Black oxide M4 x 10 is sold made in the United States alone + assert socket[Millimeters(10)][Variant("BLACK")].part_number == "91290A144" + # Its M3 x 8 black oxide imported pack costs less than its United States one + assert DEFINITION["FTC"].screws[("MCMASTER", "M3", "SOCKET")][Millimeters(8)][Variant("BLACK")].part_number == "91290A400" + + +def test_mcmaster_carrs_lengths_sold_both_ways_offer_full_threading(): + socket = DEFINITION["FTC"].screws[("MCMASTER", "M4", "SOCKET")] + both = socket[Millimeters(30)] + assert both[Variant("BLACK")].part_number == "91290A639" + assert both[Variant("BLACK", True)].part_number == "91290A172" + # Sold one way, it's the standard, and says whether it's threaded its whole length + assert socket[Millimeters(25)][Variant("STAINLESS")].full_thread + assert not socket[Millimeters(30)][Variant("STAINLESS")].full_thread + + +def test_gobildas_screws_are_threaded_their_whole_length_but_its_longest(): + socket = DEFINITION["FTC"].screws[("GOBILDA", "M4", "SOCKET")] + assert socket[Millimeters(60)][Variant("ZINC_PLATED")].full_thread + assert not socket[Millimeters(75)][Variant("ZINC_PLATED")].full_thread + assert socket[Millimeters(10)][Variant("ZINC_PLATED")].part_number == "2800-0004-0010" + + +def test_andymarks_metric_screws_come_from_its_store(): + metric = DEFINITION["_metric_store_screw"] + + def product(title: str, sku: str) -> dict: + return {"store": "andymark.com", "title": title, "sku": sku, "url": "https://andymark.com/products/x"} + + screw = metric(product("M4-0.7 x 10 mm Socket Head Cap Screw", "am-1264")) + assert (screw.key, screw.length, screw.variant) == (("ANDYMARK", "M4", "SOCKET"), Millimeters(10), Variant("ZINC_PLATED")) + # Its titles leave its black and stainless out, and its M4 flat heads take a Phillips driver + assert metric(product("M4-0.7 x 55 mm Socket Head Cap Screw", "am-1251")).variant == Variant("BLACK") + assert metric(product("M3-0.5 x 45 mm Socket Head Cap Screw", "am-1659")).stock.material.name == "Stainless Steel" + assert metric(product("M4-0.7 x 8 mm Flat Head Cap Screw", "am-1788")) is None + patched = metric(product("M3-0.5 x 5 mm Zinc Flat Head Cap Screw with Nylon Patch", "am-1724")) + assert patched.has_patch and patched.key == ("ANDYMARK", "M3", "FLAT") + assert metric(product("M3-0.5 x 12 mm Phillips Pan Head Screw", "am-1557")) is None + + +def test_ftc_screws_name_their_finish_but_generics(): + records = _ftc_records("screw") + assert records[("MCMASTER", "M4", "SOCKET", "STAINLESS", "MM_10")]["name"] == ( + "M4 x 10 mm Socket Head Screw (Stainless steel)" + ) + full = records[("MCMASTER", "M4", "SOCKET", "BLACK", "MM_30", "true")] + assert (full["name"], full["partNumber"]) == ("M4 x 30 mm Socket Head Screw (Black, fully threaded)", "91290A172") + assert records[("GENERIC", "M4", "SOCKET", "MM_10")]["name"] == "M4 x 10 mm Socket Head Screw" + # REV makes M3 hex heads alone, so its size and head are fixed + rev = records[("REV", "MM_8")] + assert (rev["name"], rev["partNumber"]) == ("M3 x 8 mm Hex Head Screw (Zinc plated)", "REV-41-1359") + + +def test_ftc_nuts_and_washers_come_in_finishes(): + nuts = _ftc_records("nut") + assert nuts[("MCMASTER", "M4", "NYLOCK", "ZINC_PLATED")]["partNumber"] == "90576A103" + assert nuts[("MCMASTER", "M4", "NYLOCK", "STAINLESS")]["name"] == "M4 Nylock Nut (Stainless steel)" + # goBILDA makes M4 alone + assert nuts[("GOBILDA", "SQUARE")]["partNumber"] == "2803-0007-0007" + # Generic's nuts have no vendor or part number, and one finish, which is hidden + generic = nuts[("GENERIC", "M3", "HEX")] + assert generic["name"] == "M3 Hex Nut" + assert generic["values"] == {"vendor": "GENERIC", "size": "M3", "type": "HEX"} + assert "partNumber" not in generic and "vendor" not in generic + washers = _ftc_records("washer") + assert washers[("MCMASTER", "M3", "BLACK")]["partNumber"] == "98269A420" + # REV makes one washer, so its size is fixed + assert washers[("REV",)]["name"] == "M3 Washer (7 mm OD x 0.5 mm, Stainless steel)" + # FRC's nuts come in one finish, so their configuration doesn't ask + assert all("finish" not in record["values"] for record in MANIFEST["studios"]["nut"]["records"]) + + +def test_ftc_defaults_and_finishes_are_cheapest_first(): + studios = DEFINITION["FTC"].studios + assert studios["screw"].defaults() == { + "vendor": "GENERIC", + "size": "M4", + "head": "SOCKET", + "finish": "STAINLESS", + "length": "MM_10", + "fullyThreaded": "false", + } + assert studios["nut"].defaults() == {"vendor": "GENERIC", "size": "M4", "type": "NYLOCK", "finish": "ZINC_PLATED"} + finish = next(input for input in studios["screw"].inputs if input.id == "finish") + assert [option.id for option in finish.options] == ["STAINLESS", "ZINC_PLATED", "BLACK"] + nut_finish = next(input for input in studios["nut"].inputs if input.id == "finish") + assert [option.id for option in nut_finish.options] == ["ZINC_PLATED", "STAINLESS", "BLACK"] + assert [vendor["id"] for vendor in FTC_MANIFEST["vendors"]] == ["GENERIC", "MCMASTER", "GOBILDA", "REV", "ANDYMARK"] + + +def test_metric_flat_heads_sit_in_90_degree_countersinks(): + heads = {head["id"]: head for head in FTC_MANIFEST["heads"]} + assert heads["FLAT"]["sizes"]["M4"] == {"diameter": 0.008, "height": 0.0023, "countersunk": True} + assert DEFINITION["HEADS"]["M4"]["FLAT"].countersink_angle == 90 + assert DEFINITION["HEADS"]["NO_10_32"]["FLAT"].countersink_angle == 82 diff --git a/tests/featurescript/fasteners_test.fs b/tests/featurescript/fasteners_test.fs new file mode 100644 index 00000000..5daebcd1 --- /dev/null +++ b/tests/featurescript/fasteners_test.fs @@ -0,0 +1,261 @@ +FeatureScript 2960; +import(path : "onshape/std/common.fs", version : "2960.0"); +import(path : "fasteners/fasteners.fs", version : ""); +import(path : "core/robotProperties.fs", version : ""); +import(path : "testing.fs", version : ""); + +export function testFlatHeadMeetsShankAtCountersinkAngle() +{ + const size = FASTENER_SIZES[FastenerSize.NO_10_32]; + const head = SCREW_HEADS[FastenerSize.NO_10_32][ScrewHead.FLAT]; + // 82 degrees: (0.411 - 0.19) / 2 / tan(41 degrees) + expectNear(flatHeadHeight(size, head), 0.12711 * inch, 0.00001 * inch); +} + +export function testProfilesCloseOnTheAxis() +{ + for (var sizeId, spec in FASTENER_SIZES) + { + for (var headType, head in SCREW_HEADS[sizeId]) + { + const length = 2 * inch; + const points = screwProfile(spec, head, headType, length); + // Down to its tip, chamfered, and back up the axis + const tip = indexOf(points, vector(0 * meter, -length)); + expectSamePoint(points[tip - 1], vector(spec.majorDiameter / 2 - tipChamfer(spec), -length)); + expectEqual(points[tip + 1][0], 0 * meter); + if (headType == ScrewHead.BUTTON) + { + // The dome closes it, from the head's side to its flat top + const dome = buttonDome(head); + expectSamePoint(dome.start, points[0]); + expectSamePoint(dome.end, points[size(points) - 1]); + } + else + { + expectSamePoint(points[0], points[size(points) - 1]); + } + } + } +} + +export function testButtonDomeIsAnArcCenteredOnTheAxis() +{ + const head = SCREW_HEADS[FastenerSize.QUARTER_20][ScrewHead.BUTTON]; + const dome = buttonDome(head); + // A circle through all three points, centered on the axis + const center = vector(0 * meter, (squaredNorm(dome.end) - squaredNorm(dome.start)) / (2 * (dome.end[1] - dome.start[1]))); + const radius = norm(dome.start - center); + expectNear(norm(dome.mid - center), radius, 1e-9 * meter); + expectNear(norm(dome.end - center), radius, 1e-9 * meter); + // Its flat top is wider than its socket's corners + expectTrue(dome.end[0] > head.socketSize / sqrt(3), "Socket wider than the flat top"); + expectSamePoint(dome.end, vector(1.4 * head.socketSize / 2, head.headHeight)); +} + +export function testMetricSocketHeadsAreThreaded2DPlus12Millimeters() +{ + const size = FASTENER_SIZES[FastenerSize.M4]; + const socket = SCREW_HEADS[FastenerSize.M4][ScrewHead.SOCKET]; + expectNear(threadLength(size, socket, ScrewHead.SOCKET, 40 * millimeter, false), 20 * millimeter, 1e-9 * meter); +} + +export function testVendorsFullyThreadedLengthsSaySo() +{ + // goBILDA's are threaded their whole length but its 75 mm + const gobilda = SCREWS[FastenerVendor.GOBILDA][FastenerSize.M4][ScrewHead.SOCKET][ScrewFinish.ZINC_PLATED]; + expectEqual(gobilda[ScrewLength.MM_60].standard.fullyThreaded, true); + expectEqual(gobilda[ScrewLength.MM_75].standard.fullyThreaded, undefined); +} + +export function testHexHeadProfilesClose() +{ + for (var sizeId, heads in SCREW_HEADS) + { + for (var headType, head in heads) + { + if (!isHexHead(headType)) + { + continue; + } + const points = hexHeadProfile(head); + expectSamePoint(points[0], points[size(points) - 1]); + // Chamfered inside its corners, out to its flats at its top + expectSamePoint(points[3], vector(head.acrossFlats / 2, head.headHeight)); + expectTrue(points[1][0] > head.headDiameter / 2, "Its chamfer starts past its corners"); + } + } +} + +export function testFlatHeadsSitInTheirSizesCountersinks() +{ + expectEqual(SCREW_HEADS[FastenerSize.NO_10_32][ScrewHead.FLAT].countersinkAngle, 82 * degree); + expectEqual(SCREW_HEADS[FastenerSize.M4][ScrewHead.FLAT].countersinkAngle, 90 * degree); +} + +export function testStandardSocketHeadsAreThreaded2DPlusHalfAnInch() +{ + const size = FASTENER_SIZES[FastenerSize.QUARTER_20]; + const socket = SCREW_HEADS[FastenerSize.QUARTER_20][ScrewHead.SOCKET]; + expectNear(threadLength(size, socket, ScrewHead.SOCKET, 3 * inch, false), 1 * inch, 1e-9 * meter); + expectNear(threadLength(size, socket, ScrewHead.SOCKET, 3 * inch, true), 3 * inch, 1e-9 * meter); + // Short ones all the way up + expectNear(threadLength(size, socket, ScrewHead.SOCKET, 0.5 * inch, false), 0.5 * inch, 1e-9 * meter); + // A flat head's up to its head + const flat = SCREW_HEADS[FastenerSize.QUARTER_20][ScrewHead.FLAT]; + expectNear(threadLength(size, flat, ScrewHead.FLAT, 1 * inch, false), 1 * inch - flatHeadDepth(size, flat), 1e-9 * meter); +} + +export function testSocketsStayInsideTheirHeads() +{ + for (var sizeId, spec in FASTENER_SIZES) + { + for (var headType, head in SCREW_HEADS[sizeId]) + { + const height = headType == ScrewHead.FLAT ? flatHeadDepth(spec, head) : head.headHeight; + expectTrue(socketDepth(spec, head, headType) < height, "Socket deeper than its head"); + } + } +} + +export function testEveryFlatHeadIsShorterThanItsScrews() +{ + for (var _, sizes in SCREWS) + { + for (var size, heads in sizes) + { + const flat = heads[ScrewHead.FLAT]; + if (flat == undefined) + { + continue; + } + for (var _, lengths in flat) + { + for (var length, _ in lengths) + { + const spec = FASTENER_SIZES[size]; + expectTrue(SCREW_LENGTHS[length].length > flatHeadDepth(spec, SCREW_HEADS[size][ScrewHead.FLAT]) + tipChamfer(spec), + "Flat head and tip longer than its screw"); + } + } + } + } +} + +export function testWasherNames() +{ + expectEqual(WASHERS[FastenerVendor.GENERIC][FastenerSize.NO_10_32][WasherType.OD_1_2_X_0_049][WasherFinish.BLACK].name, "#10 Washer (1/2 in OD x 0.049 in)"); + expectEqual(WASHERS[FastenerVendor.GENERIC][FastenerSize.QUARTER_20][WasherType.OD_5_8_X_0_065][WasherFinish.BLACK].name, "1/4 in Washer (5/8 in OD x 0.065 in)"); +} + +export function testFinishesSetTheirMaterialAndAppearance() +{ + const finishes = SCREWS[FastenerVendor.WCP][FastenerSize.NO_10_32][ScrewHead.BUTTON]; + expectEqual(finishes[ScrewFinish.BLACK][ScrewLength.IN_0_25].standard.material, STEEL); + expectEqual(finishes[ScrewFinish.BLACK][ScrewLength.IN_0_25].standard.appearance, BLACK); + expectEqual(finishes[ScrewFinish.ALUMINUM][ScrewLength.IN_0_25].standard.material, ALUMINUM); +} + +export function testLongSocketHeadsComeFullyThreadedToo() +{ + const threads = SCREWS[FastenerVendor.MCMASTER][FastenerSize.NO_8_32][ScrewHead.SOCKET][ScrewFinish.BLACK][ScrewLength.IN_2]; + expectEqual(threads.standard.partNumber, "91251A205"); + expectEqual(threads.fullThread.partNumber, "90044A113"); +} + +export function testNutProfilesClose() +{ + for (var vendor, sizes in NUTS) + { + for (var sizeId, types in sizes) + { + for (var nutType, finishes in types) + { + for (var finish, nut in finishes) + { + const points = nutProfile(FASTENER_SIZES[sizeId], nut, nutType); + if (nutType == NutType.NYLOCK || nutType == NutType.THIN_NYLOCK) + { + // The dome closes it, from the top of its hex to its flat top + const dome = nylockDome(nut); + expectSamePoint(dome.start, points[size(points) - 1]); + expectSamePoint(dome.end, points[0]); + } + else + { + expectSamePoint(points[0], points[size(points) - 1]); + } + } + } + } + } +} + +export function testNylonInsertsFitInsideTheirDomes() +{ + for (var vendor, sizes in NUTS) + { + for (var sizeId, types in sizes) + { + for (var nutType, finishes in types) + { + for (var finish, nut in finishes) + { + if (nut.insertDiameter == undefined) + { + continue; + } + const dome = nylockDome(nut); + expectTrue(nut.hexHeight < nut.height, "a nylock's hex is shorter than it"); + expectTrue(nut.insertDiameter / 2 < dome.end[0], "its insert is inside its flat top"); + expectTrue(FASTENER_SIZES[sizeId].tapDrillDiameter < nut.insertDiameter, "its insert is wider than its bore"); + } + } + } + } +} + +export function testNutsMatchMcMasterCarrsModels() +{ + const nuts = NUTS[FastenerVendor.MCMASTER][FastenerSize.NO_10_32]; + const zinc = NutFinish.ZINC_PLATED; + expectNear(nuts[NutType.THIN_NYLOCK][zinc].height, 11 / 64 * inch, 1e-6 * inch); + expectNear(nuts[NutType.NYLOCK][zinc].height - nuts[NutType.NYLOCK][zinc].hexHeight, 5 / 128 * inch, 1e-6 * inch); + expectNear(NUTS[FastenerVendor.MCMASTER][FastenerSize.NO_6_32][NutType.THIN_HEX][zinc].acrossFlats, 1 / 4 * inch, 1e-6 * inch); + // And its metric ones (90591A255 and 94645A101) + const m4 = NUTS[FastenerVendor.MCMASTER][FastenerSize.M4]; + expectNear(m4[NutType.HEX][zinc].height, 3.2 * millimeter, 1e-9 * meter); + expectNear(m4[NutType.NYLOCK][zinc].hexHeight, 4.17 * millimeter, 1e-9 * meter); +} + +function expectSamePoint(actual is Vector, expected is Vector) +{ + expectNear(norm(actual - expected), 0 * meter, 1e-9 * meter); +} + +export function testAHiddenInputResolvesToTheOneMade() +{ + // FRC's nuts come in zinc plating alone, so any finish resolves to it + const nylocks = NUTS[FastenerVendor.MCMASTER][FastenerSize.NO_10_32][NutType.NYLOCK]; + expectEqual(resolve(nylocks, NutFinish.BLACK), NutFinish.ZINC_PLATED); + expectEqual(resolve({ "a" : 1, "b" : 2 }, "b"), "b"); + expectEqual(resolve({ "a" : 1, "b" : 2 }, "c"), undefined); +} + +export function testAHiddenSizeResolvesWithinItsOwnPartSet() +{ + // REV makes #10-32 screws for FRC and M3 ones for FTC: each studio's hidden Size holds one of its own set's sizes + const parameters = ["vendor", "size", "head", "finish", "length"]; + const ftc = resolveChoices(SCREWS, { "vendor" : FastenerVendor.REV, "size" : FastenerSize.M4, "head" : ScrewHead.SOCKET, + "finish" : ScrewFinish.STAINLESS, "length" : ScrewLength.MM_20 }, parameters); + expectEqual(ftc.definition.size, FastenerSize.M3); + expectEqual(ftc.definition.head, ScrewHead.HEX); + expectEqual(ftc.made, SCREWS[FastenerVendor.REV][FastenerSize.M3][ScrewHead.HEX][ftc.definition.finish][ScrewLength.MM_20]); + const frc = resolveChoices(SCREWS, { "vendor" : FastenerVendor.REV, "size" : FastenerSize.NO_8_32, "head" : ScrewHead.SOCKET, + "finish" : ScrewFinish.BLACK, "length" : ScrewLength.IN_0_5 }, parameters); + expectEqual(frc.definition.size, FastenerSize.NO_10_32); + // Nothing of goBILDA's comes in #10-32 + const unmade = resolveChoices(NUTS, { "vendor" : FastenerVendor.GOBILDA, "size" : FastenerSize.NO_10_32, + "nutType" : NutType.NYLOCK, "finish" : NutFinish.ZINC_PLATED }, ["vendor", "size", "nutType", "finish"]); + expectEqual(unmade.unmade, "size"); +} diff --git a/tests/featurescript/robotColor_test.fs b/tests/featurescript/robotColor_test.fs new file mode 100644 index 00000000..6e09eb81 --- /dev/null +++ b/tests/featurescript/robotColor_test.fs @@ -0,0 +1,75 @@ +FeatureScript 2960; +import(path : "onshape/std/common.fs", version : "2960.0"); +import(path : "color/robotColor.fs", version : ""); +import(path : "core/robotProperties.fs", version : ""); +import(path : "testing.fs", version : ""); + +export function testHexCodesWithOrWithoutTheirHash() +{ + expectEqual(hexColor("#4D4D4D"), rgbColor(77, 77, 77)); + expectEqual(hexColor("fe8b00"), rgbColor(254, 139, 0)); + expectEqual(hexColor(" #Fe8B00 "), rgbColor(254, 139, 0)); +} + +export function testShortHexCodesDoubleEachDigit() +{ + expectEqual(hexColor("#FFF"), rgbColor(255, 255, 255)); + expectEqual(hexColor("4d8"), rgbColor(68, 221, 136)); +} + +export function testWhatIsNoHexCode() +{ + for (var code in ["", "#", "#4D4D4", "#4D4D4D4D", "#GGGGGG", "4D 4D 4D"]) + { + expectEqual(hexColor(code), undefined); + } +} + +export function testRgbChannelsRunTo255() +{ + expectEqual(rgbColor(255, 0, 51), color(1, 0, 0.2)); +} + +export function testColorsByHexOrRgb() +{ + expectEqual(parseColor("#4D4D4D"), rgbColor(77, 77, 77)); + expectEqual(parseColor("#FFF"), rgbColor(255, 255, 255)); + for (var rgb in ["77, 77, 77", "77,77,77", "77 77 77", " rgb(77, 77, 77) ", "RGB(77 77 77)"]) + { + expectEqual(parseColor(rgb), rgbColor(77, 77, 77)); + } + // Three digits alone are a hex code, as CSS reads them + expectEqual(parseColor("777"), rgbColor(119, 119, 119)); +} + +export function testWhatIsNoColor() +{ + for (var text in ["", "77, 77", "77, 77, 77, 77", "256, 0, 0", "rgb(77, 77, 77", "red", "-1, 0, 0"]) + { + expectEqual(parseColor(text), undefined); + } +} + +// Each standard color's name gives its hex code, and robotProperties' constants are the standards they're named for +export function testStandardColorsAreTheirNamedHexCodes() +{ + expectEqual(size(STANDARD_COLORS), 34); + expectEqual(STANDARD_COLORS[StandardColor.GENERAL_BLACK], hexColor("#373737")); + expectEqual(STANDARD_COLORS[StandardColor.ZINC_COATED_STEEL], hexColor("#E1E7EC")); + expectEqual(STANDARD_COLORS[StandardColor.CLEAR_POLYCARBONATE], color(230 / 255, 230 / 255, 230 / 255, 0.8)); + const constants = { + StandardColor.GENERAL_WHITE : WHITE, + StandardColor.LIGHT_GREY : LIGHT_GRAY, + StandardColor.MEDIUM_GREY : MEDIUM_GRAY, + StandardColor.STEEL_GREY : STEEL_GRAY, + StandardColor.GENERAL_BLACK : BLACK, + StandardColor.MACHINED_BRASS_YELLOW : BRASS_YELLOW, + StandardColor.REV_ORANGE : REV_ORANGE, + StandardColor.COPPER : COPPER, + StandardColor.ZINC_COATED_STEEL : ZINC_COATED_STEEL + }; + for (var standard, constant in constants) + { + expectEqual(STANDARD_COLORS[standard], constant); + } +} diff --git a/tests/fs_cli_test.py b/tests/fs_cli_test.py index b7113214..9330cead 100644 --- a/tests/fs_cli_test.py +++ b/tests/fs_cli_test.py @@ -12,11 +12,13 @@ import pytest from fs_cli import cli, workspace -from fs_cli.remote import RemoteImage, RemoteStudio, Version, folder_paths +from fs_cli.configured_studios import Built +from fs_cli.remote import RemoteImage, RemoteStudio, RemoteWorkspace, Version, folder_paths from fs_cli.versions import ReleasedVersion, VersionType, feature_name_for, next_version from fs_cli.std import StdMetadata from fs_cli.workspace import Status, update_std_version from onshape_api.exceptions import ApiError +from onshape_api.paths.paths import InstancePath from semver import Version as SemVersion BACKEND = "https://cad.onshape.com/documents/back/w/bw" @@ -38,6 +40,18 @@ def __init__(self) -> None: self.folders_error: Exception | None = None # (document id, instance id) -> element id -> image tab self.image_tabs: dict[tuple[str, str], dict[str, dict]] = {} + # (document id, instance id) -> Part Studio tab name -> element id + self.part_studios: dict[tuple[str, str], dict[str, str]] = {} + # (document id, studio name, Feature Studio element id, its microversion) of each build + self.builds: list[tuple[str, str, str, str]] = [] + self.build_status = "OK" + # (document id, workspace id) -> name, for every workspace but the backend's main one + self.workspace_names: dict[tuple[str, str], str] = {} + self.workspace_descriptions: dict[str, str] = {} + # (document id, instance id) -> element id -> (name, data), of file tabs put_file wrote + self.files: dict[tuple[str, str], dict[str, tuple[str, bytes]]] = {} + # (target workspace id, source workspace id, strategy) of each merge + self.merges: list[tuple[str, str, str]] = [] def _id(self, prefix: str) -> str: # Like Onshape's: 24 hex digits @@ -167,6 +181,10 @@ def latest_std_version(self): self.calls["latest_std_version"] += 1 return "2909" + def default_workspace(self, document_id): + self.calls["default_workspace"] += 1 + return InstancePath(document_id, "lw") + def list_images(self, instance): self.calls["list_images"] += 1 images = self.images(instance.document_id, instance.instance_id) @@ -187,6 +205,55 @@ def update_image(self, instance, element_id, name, data): image.update(data=data, mv=self._id("m")) return RemoteImage(element_id, name, image["mv"]) + def build_studio(self, instance, studio, feature_studio_id, microversion_id): + self.calls["build_studio"] += 1 + tabs = self.part_studios.setdefault((instance.document_id, instance.instance_id), {}) + created = studio.tab_name not in tabs + element_id = tabs.setdefault(studio.tab_name, self._id("p")) + self.builds.append((instance.document_id, studio.name, feature_studio_id, microversion_id)) + return Built(element_id, created, self.build_status) + + def put_file(self, instance, name, data, content_type): + self.calls["put_file"] += 1 + files = self.files.setdefault((instance.document_id, instance.instance_id), {}) + element_id = next((id for id, (each, _) in files.items() if each == name), None) or self._id("f") + files[element_id] = (name, data) + return element_id + + def element_ids(self, instance): + key = (instance.document_id, instance.instance_id) + return set(self.instances.get(key, {})) | set(self.image_tabs.get(key, {})) + + def workspaces(self, document_id): + self.calls["workspaces"] += 1 + return [ + RemoteWorkspace(id, name, self.workspace_descriptions.get(id, "")) + for (document, id), name in self.workspace_names.items() + if document == document_id + ] + + def create_workspace(self, document_id, version_id, name, description): + self.calls["create_workspace"] += 1 + workspace_id = self._id("w") + self.workspace_names[(document_id, workspace_id)] = name + self.workspace_descriptions[workspace_id] = description + self.instances[(document_id, workspace_id)] = copy.deepcopy(self.studios(document_id, version_id)) + return RemoteWorkspace(workspace_id, name, description) + + def delete_workspace(self, instance): + self.calls["delete_workspace"] += 1 + del self.workspace_names[(instance.document_id, instance.instance_id)] + self.instances.pop((instance.document_id, instance.instance_id), None) + + def merge(self, target, source_workspace_id, strategy): + """Takes the source's tabs the target lacks, and with REPLACE (or MERGE) the source's version of the rest.""" + self.calls["merge"] += 1 + self.merges.append((target.instance_id, source_workspace_id, strategy)) + studios = self.studios(target.document_id, target.instance_id) + for element_id, studio in self.studios(target.document_id, source_workspace_id).items(): + if element_id not in studios or strategy != "KEEP": + studios[element_id] = copy.deepcopy(studio) + @pytest.fixture def repo(tmp_path, monkeypatch) -> pathlib.Path: @@ -480,6 +547,35 @@ def test_deleted_in_onshape_is_recreated_by_push(repo, onshape, capsys): assert onshape.code("frame.fs") == "a" +def test_recreating_a_tab_repoints_the_files_importing_its_old_one(repo, onshape, capsys): + utils = onshape.add("utils.fs", "u") + onshape.add("frame.fs", f'import(path : "{utils}", version : "{"a" * 24}");\n') + git(repo, "init", "-q") + (repo / ".gitignore").write_text(".fs-state.json\n") + subprocess.run(["git", "config", "user.name", "t"], cwd=repo, check=True) + subprocess.run(["git", "config", "user.email", "t@t"], cwd=repo, check=True) + run(onshape, "pull") + git(repo, "add", "-A") + git(repo, "commit", "-qm", "Start") + del onshape.studios()[utils] + capsys.readouterr() + # frame.fs would keep importing a tab that's gone + assert run(onshape, "push") == 2 + assert ( + f"frame.fs imports utils.fs by its old tab ({utils}), which this push makes again under a new id; " + "push frame.fs too." + ) in capsys.readouterr().err + assert onshape.names() == ["frame.fs"] + + # The failed push saved fs-studios.json without the old tab; its last commit still names it + local(repo, "frame.fs").write_text(local(repo, "frame.fs").read_text() + "// frame\n") + assert run(onshape, "push") == 0 + new_utils = next(id for id, s in onshape.studios().items() if s["name"] == "utils.fs") + # Its version is whichever microversion utils.fs had when frame.fs was pushed, which they race for + assert f'import(path : "{new_utils}", version : "' in onshape.code("frame.fs") + assert f'import(path : "{new_utils}", version : "' in local(repo, "frame.fs").read_text() + + def test_push_deletes_tabs_of_deleted_files(repo, onshape, capsys): onshape.add("frame.fs", "a") onshape.add("plate.fs", "b") @@ -886,6 +982,23 @@ def test_import_version_changes_are_not_conflicts(repo, onshape, capsys): assert onshape.calls == {"list_studios": 1, "list_images": 1} +def test_pushing_a_tab_with_its_importer_keeps_the_version_onshape_gives_the_import(repo, onshape, capsys): + """Onshape updates the importer's import of a tab pushed with it, after the importer's own push.""" + utils = onshape.add("utils.fs", "utils") + frame = onshape.add("frame.fs", f'import(path : "{utils}", version : "{OLD}");\nframe\n') + run(onshape, "pull") + local(repo, "utils.fs").write_text("utils2") + local(repo, "frame.fs").write_text(f'import(path : "{utils}", version : "{OLD}");\nframe2\n') + + assert run(onshape, "push") == 0 + assert local(repo, "frame.fs").read_text() == onshape.code("frame.fs") + assert OLD not in onshape.code("frame.fs") + + capsys.readouterr() + run(onshape, "status") + assert "import versions updated in Onshape" not in capsys.readouterr().out + + def test_pushing_keeps_onshapes_import_versions(repo, onshape): element_id = onshape.add("b.fs", importing(OLD)) run(onshape, "pull") @@ -964,6 +1077,32 @@ def test_missing_config(tmp_path, monkeypatch, onshape, capsys): assert "[tool.fs]" in capsys.readouterr().err +def test_a_part_set_needs_a_main_document_folder_and_title(tmp_path): + from fs_cli.config import ConfigError, parse_config + + base = {"backend": BACKEND} + main = f"https://cad.onshape.com/documents/{MAIN}" + with pytest.raises(ConfigError, match="main must be"): + parse_config(tmp_path, {**base, "parts": {"parts": {"main": "nope", "folder": "Parts", "title": "Parts"}}}) + with pytest.raises(ConfigError, match="folder must"): + parse_config(tmp_path, {**base, "parts": {"parts": {"main": main, "title": "Parts"}}}) + with pytest.raises(ConfigError, match="title must"): + parse_config(tmp_path, {**base, "parts": {"parts": {"main": main, "folder": "Parts"}}}) + config = parse_config(tmp_path, {**base, "parts": {"parts": {"main": main, "folder": "Parts/", "title": "Parts"}}}) + assert config.part_set_for("Parts/partMaker.fs").main_document_id == MAIN + assert config.part_set_for("PartsBin/x.fs") is None + assert config.find_part_set("parts").folder == "Parts" + with pytest.raises(ConfigError, match="targets must map names to documents' urls"): + parse_config(tmp_path, {**base, "parts": {"parts": {"main": main, "folder": "P", "title": "P", "targets": {"local": "nope"}}}}) + with pytest.raises(ConfigError, match="No part set named bolts"): + config.find_part_set("bolts") + # A set may name its definition, where its folder holds another set's too + shared = {"main": main, "folder": "Parts", "title": "Parts", "definition": "otherTables.py"} + assert parse_config(tmp_path, {**base, "parts": {"parts": shared}}).find_part_set("parts").definition == "otherTables.py" + with pytest.raises(ConfigError, match="definition must name a .py file in its folder"): + parse_config(tmp_path, {**base, "parts": {"parts": {**shared, "definition": "Parts/otherTables.py"}}}) + + # Updating the std @@ -1153,6 +1292,187 @@ def test_release_requires_confirmation_when_not_interactive(repo, onshape, capsy assert "--yes" in capsys.readouterr().err +MAIN = "abcdef0123456789abcdef01" + + +def with_part_set(repo: pathlib.Path) -> None: + pyproject = repo / "pyproject.toml" + pyproject.write_text( + pyproject.read_text() + + f'\n[tool.fs.parts.parts]\ntitle = "Parts"\nfolder = "Parts"\nmain = "https://cad.onshape.com/documents/{MAIN}"\n' + ) + + +# A definition configuring a Part Studio of a part set's feature, as fastenerTables.py does +PART_TABLES = """ +from fs_cli.configured_studios import ConfiguredStudio, Input, Option + +CONTENTS = [] +STUDIOS = { + "screw": ConfiguredStudio( + "screw", "partScrew", [Input("size", "Size", "size", [Option("A", "A", "A")], enum_name="Size")] + ) +} +EXPORTS = {"parts.gen.json": '{"studios": {"screw": {"feature": "partScrew", "mateConnector": "mc", "location": null}}}\\n'} +""" +PART_MAKER = "FeatureScript 1;\nexport const partScrew = defineFeature(function(context, id, definition) {});\n" + + +def part_set(repo: pathlib.Path, onshape: FakeOnshape) -> str: + with_part_set(repo) + element_id = onshape.add("partMaker.fs", PART_MAKER, folders=("Parts",), features=["Screw"]) + run(onshape, "pull") + write(repo, "Parts/partTables.py", PART_TABLES) + return element_id + + +def test_a_part_set_is_tried_in_the_backend_as_test_part_studios(repo, onshape, capsys): + element_id = part_set(repo, onshape) + + assert run(onshape, "parts", "parts", "--test", "-y") == 0 + assert onshape.builds == [("back", "screw", element_id, onshape.studios()[element_id]["mv"])] + assert list(onshape.part_studios[("back", "bw")]) == ["Screw (TEST)"] + assert "Screw (TEST) (created, OK): https://cad.onshape.com/documents/back/w/bw/e/" in capsys.readouterr().out + # Nothing recorded, and nothing versioned + assert not local(repo, "Parts/partTables.studios.json").exists() + assert onshape.versions_by_document == {} + + +def test_part_sets_sharing_a_folder_each_build_their_own_definitions_studios(repo, onshape, capsys): + """As FRC's and FTC's fasteners share fasteners.fs, each configuring its own studios.""" + element_id = part_set(repo, onshape) + write(repo, "Parts/otherTables.py", PART_TABLES.replace('"screw"', '"bolt"').replace("CONTENTS = []\n", "")) + pyproject = repo / "pyproject.toml" + pyproject.write_text( + pyproject.read_text().replace('folder = "Parts"\n', 'folder = "Parts"\ndefinition = "partTables.py"\n') + + f'\n[tool.fs.parts.others]\ntitle = "Others"\nfolder = "Parts"\ndefinition = "otherTables.py"\nmain = "https://cad.onshape.com/documents/{MAIN}"\n' + ) + + assert run(onshape, "parts", "others", "--test", "-y") == 0 + assert onshape.builds == [("back", "bolt", element_id, onshape.studios()[element_id]["mv"])] + + +def test_a_part_set_is_tried_only_once_pushed(repo, onshape, capsys): + part_set(repo, onshape) + write(repo, "Parts/partMaker.fs", PART_MAKER + "// edited\n") + + assert run(onshape, "parts", "parts", "--test", "-y") != 0 + assert "Parts/partMaker.fs isn't in sync with the backend document" in capsys.readouterr().err + assert onshape.builds == [] + + +def test_a_part_set_takes_the_import_versions_onshape_gave_its_featurescript(repo, onshape, capsys): + element_id = part_set(repo, onshape) + utils = onshape.add("utils.fs", "utils", folders=("Parts",)) + onshape.edit(element_id, f'import(path : "{utils}", version : "{OLD}");\n' + PART_MAKER) + run(onshape, "pull") + onshape.edit(element_id, f'import(path : "{utils}", version : "{NEW}");\n' + PART_MAKER) + + assert run(onshape, "parts", "parts", "--test", "-y") == 0 + assert "Updated import versions in Parts/partMaker.fs to match Onshape" in capsys.readouterr().out + assert local(repo, "Parts/partMaker.fs").read_text() == onshape.code("partMaker.fs") + onshape.calls.clear() + run(onshape, "status") + assert "pull" not in onshape.calls + + +def test_a_part_set_is_released_into_its_main_document(repo, onshape, capsys): + element_id = part_set(repo, onshape) + + assert run(onshape, "parts", "parts", "--release", "--minor", "-y") == 0 + + [backend_version] = onshape.versions_by_document["back"] + assert backend_version.name == "Parts - v0.1.0" + main_studio = next(id for id, s in onshape.studios(MAIN, "lw").items() if s["name"] == "partMaker.fs") + assert f'"back/{backend_version.id}/{element_id}"' in onshape.code("partMaker.fs", MAIN, "lw") + # Built from the main document's own studio as pushed, not the backend's + assert onshape.builds == [(MAIN, "screw", main_studio, onshape.studios(MAIN, "lw")[main_studio]["mv"])] + # The main document is left for its owner to version + assert MAIN not in onshape.versions_by_document + assert json.loads(local(repo, "Parts/partTables.studios.json").read_text()) == { + "documentId": MAIN, + "elements": {"screw": onshape.part_studios[(MAIN, "lw")]["Screw"]}, + } + out = capsys.readouterr().out + assert " 3. Build Screw in the main document, and write its manifest there" in out + assert "Create version Parts - v0.1.0 in the main document" not in out + assert "front" not in onshape.versions_by_document + # Its manifest beside its Part Studios, naming each by its tab there + [(name, data)] = onshape.files[(MAIN, "lw")].values() + assert name == "parts.parts.json" + screw = onshape.part_studios[(MAIN, "lw")]["Screw"] + assert json.loads(data) == {"studios": {"screw": {"feature": "partScrew", "mateConnector": "mc", "elementId": screw}}} + + # The next is numbered from the backend's versions + assert run(onshape, "parts", "parts", "--release", "--minor", "-y") == 0 + assert [version.name for version in onshape.versions_by_document["back"]] == ["Parts - v0.1.0", "Parts - v0.2.0"] + assert MAIN not in onshape.versions_by_document + + +TARGET = "fedcba9876543210fedcba98" + + +def test_a_part_set_is_released_to_a_target_to_try_it(repo, onshape, capsys): + part_set(repo, onshape) + (repo / "pyproject.toml").write_text( + (repo / "pyproject.toml").read_text() + + f'[tool.fs.parts.parts.targets]\nlocal = "https://cad.onshape.com/documents/{TARGET}"\n' + ) + + assert run(onshape, "parts", "parts", "--release", "--target", "local", "-y") == 0 + # Versioned, but not as a release + [backend_version] = onshape.versions_by_document["back"] + assert backend_version.name == "Parts test - no branch" + [version] = onshape.versions_by_document[TARGET] + assert version.name == "Parts test - no branch" + assert list(onshape.part_studios[(TARGET, "lw")]) == ["Screw"] + [(name, _)] = onshape.files[(TARGET, "lw")].values() + assert name == "parts.parts.json" + # Nothing recorded, released, or in the main document + assert not local(repo, "Parts/partTables.studios.json").exists() + assert MAIN not in onshape.versions_by_document + assert "Record where" not in capsys.readouterr().out + + assert run(onshape, "parts", "parts", "--release", "--target", "local", "--minor", "-y") == 2 + assert "takes no --major, --minor, or --patch" in capsys.readouterr().err + assert run(onshape, "parts", "parts", "--release", "--target", f"https://cad.onshape.com/documents/{MAIN}", "-y") == 2 + assert "main document" in capsys.readouterr().err + assert run(onshape, "parts", "parts", "--test", "--target", "local", "-y") == 2 + assert "go with --release" in capsys.readouterr().err + + +def test_a_part_set_release_stops_at_a_part_studio_that_fails_to_regenerate(repo, onshape, capsys): + part_set(repo, onshape) + onshape.build_status = "ERROR" + + assert run(onshape, "parts", "parts", "--release", "--minor", "-y") != 0 + assert "Screw's partScrew fails to regenerate in its default configuration" in capsys.readouterr().err + assert MAIN not in onshape.versions_by_document + assert not local(repo, "Parts/partTables.studios.json").exists() + + +def test_a_part_sets_featurescript_isnt_released_by_fs_release(repo, onshape, capsys): + part_set(repo, onshape) + assert run(onshape, "release", "partMaker", "--minor", "-y") != 0 + assert "release it with `fs parts parts --release`" in capsys.readouterr().err + assert onshape.versions_by_document == {} + + +def test_sync_versions_leaves_out_part_set_releases(repo, onshape): + with_part_set(repo) + onshape.versions_by_document["back"] = [ + Version("1", "Robot frame - v1.0.0"), + Version("2", "Parts - v0.1.0"), + Version("3", "Robot frame - v1.1.0"), + ] + onshape.versions_by_document["front"] = [Version("9", "Robot frame - v1.0.0")] + assert run(onshape, "sync-versions", "-y") == 0 + assert [v.name for v in onshape.versions_by_document["front"]] == [ + "Robot frame - v1.0.0", + "Robot frame - v1.1.0", + ] + + def test_sync_versions(repo, onshape): onshape.versions_by_document["back"] = [ Version("1", "Robot frame - v1.0.0"), @@ -1602,8 +1922,8 @@ def test_cots_ranks_parts_and_shows_options(): }, }, "/analytics/parts/library/frc-design-lib": [ - {"path": {"elementId": "ea"}, "insertCount": 800}, - {"path": {"elementId": "eb"}, "insertCount": 300}, + {"path": {"elementId": "ea"}, "useCount": 800}, + {"path": {"elementId": "eb"}, "useCount": 300}, ], "/analytics/insertable/library/frc-design-lib/element/ea": { "parameters": [ @@ -1850,3 +2170,197 @@ def test_onshape_remote_images(): assert api.requests[1][1] == "/blobelements/d/back/w/bw/e/i3" with pytest.raises(ValueError, match="isn't an image"): OnshapeRemote(api).upload_image(instance, "part.step", b"") + + +# Branches + + +def branched(repo: pathlib.Path, onshape: FakeOnshape, branch: str = "feature") -> None: + """A repo whose branches each get a workspace, on `branch`, with a version of the main workspace to branch from.""" + (repo / "pyproject.toml").write_text(f'[tool.fs]\nbackend = "{BACKEND}"\nmain_branch = "main"\n') + (repo / ".gitignore").write_text(".fs-state*.json\n") + git(repo, "init", "-q", "-b", "main") + git(repo, "config", "user.name", "t") + git(repo, "config", "user.email", "t@t") + git(repo, "add", "-A") + git(repo, "commit", "-qm", "Start") + onshape.create_version(InstancePath("back", "bw"), "Start", "") + if branch != "main": + git(repo, "checkout", "-qb", branch) + + +def workspace_of(onshape: FakeOnshape, name: str) -> str: + return next(id for (_, id), each in onshape.workspace_names.items() if each == name) + + +def test_a_branch_reads_main_until_it_pushes_to_a_workspace_of_its_own(repo, onshape, capsys): + onshape.add("frame.fs", "1") + branched(repo, onshape) + assert run(onshape, "pull") == 0 + assert "feature has no workspace in Onshape yet" in capsys.readouterr().out + assert local(repo, "frame.fs").read_text() == "1" + + local(repo, "frame.fs").write_text("2") + assert run(onshape, "push") == 0 + feature = workspace_of(onshape, "feature") + assert onshape.code("frame.fs", instance=feature) == "2" + assert onshape.code("frame.fs") == "1" + assert (repo / ".fs-state.feature.json").is_file() + + # Its workspace from now on, and the main workspace untouched + local(repo, "frame.fs").write_text("3") + assert run(onshape, "push") == 0 + assert onshape.calls["create_workspace"] == 1 + assert onshape.code("frame.fs", instance=feature) == "3" + assert onshape.code("frame.fs") == "1" + + +def test_the_main_workspace_changes_only_by_merging(repo, onshape, capsys): + branched(repo, onshape, "main") + write(repo, "frame.fs", "1") + assert run(onshape, "push") == 2 + assert "changes only by merging" in capsys.readouterr().err + assert onshape.names() == [] + + +def test_releasing_runs_only_on_main(repo, onshape, capsys): + branched(repo, onshape) + assert run(onshape, "release-tags") == 2 + assert "runs only on main" in capsys.readouterr().err + + +def test_a_branch_catches_up_with_a_tab_it_has_from_git(repo, onshape): + onshape.add("frame.fs", "1") + branched(repo, onshape) + run(onshape, "pull") + local(repo, "frame.fs").write_text("2") + run(onshape, "push") + feature = workspace_of(onshape, "feature") + # Another branch added utils.fs, which reached main; this one merges it in git + utils = onshape.add("utils.fs", "u") + studios = json.loads((repo / "fs-studios.json").read_text()) + studios["studios"][utils] = "utils.fs" + (repo / "fs-studios.json").write_text(json.dumps(studios)) + write(repo, "utils.fs", "u") + + assert run(onshape, "push") == 0 + assert onshape.merges == [(feature, "bw", "KEEP")] + # Under the id main has, rather than a new tab + assert onshape.names(instance=feature) == ["frame.fs", "utils.fs"] + assert utils in onshape.studios("back", feature) + assert onshape.code("frame.fs", instance=feature) == "2" + + +def commit_all(repo: pathlib.Path, message: str) -> None: + git(repo, "add", "-A") + git(repo, "commit", "-qm", message, "--allow-empty") + + +def test_sync_main_lands_a_merged_branch_by_merging(repo, onshape, capsys): + onshape.add("frame.fs", "1") + branched(repo, onshape) + run(onshape, "pull") + commit_all(repo, "Pull") + local(repo, "frame.fs").write_text("2") + run(onshape, "push") + commit_all(repo, "Frame 2") + feature = workspace_of(onshape, "feature") + git(repo, "checkout", "-q", "main") + git(repo, "merge", "-q", "--ff-only", "feature") + + assert run(onshape, "sync-main", "--branch", "feature") == 0 + assert onshape.code("frame.fs") == "2" + assert onshape.merges == [(feature, "bw", "KEEP"), ("bw", feature, "REPLACE")] + assert onshape.workspace_names == {} + assert not (repo / ".fs-state.feature.json").exists() + + +def test_sync_main_makes_a_workspace_for_a_branch_without_one(repo, onshape): + branched(repo, onshape, "main") + write(repo, "utils.fs", "u") + commit_all(repo, "Utils") + + assert run(onshape, "sync-main") == 0 + assert onshape.names() == ["utils.fs"] + assert onshape.calls["create_workspace"] == 1 + assert onshape.workspace_names == {} + # The new tab's id, recorded by the push, is main's too + [utils] = json.loads((repo / "fs-studios.json").read_text())["studios"] + assert utils in onshape.studios() + + +def test_sync_main_runs_only_on_main(repo, onshape, capsys): + branched(repo, onshape) + assert run(onshape, "sync-main") == 2 + assert "runs only on main" in capsys.readouterr().err + + +# Release files + + +def test_releases_lists_and_checks_release_files(repo, onshape, capsys): + (repo / "releases").mkdir() + (repo / "releases" / "frame.toml").write_text('script = "robotFrame"\nbump = "minor"\n') + assert run(onshape, "releases") == 0 + assert "releases/frame.toml: FeatureScript robotFrame, minor release" in capsys.readouterr().out + for contents, problem in [ + ('script = "robotFrame"\npart_set = "fasteners"\n', "one script"), + ('script = "robotFrame"\nbump = "huge"\n', "major, minor, or patch"), + ('script = "robotFrame"\nversion = "1"\n', "unknown keys: version"), + ('part_set = "fasteners"\n', "no part set named fasteners"), + ]: + (repo / "releases" / "frame.toml").write_text(contents) + assert run(onshape, "releases") == 2 + assert problem in capsys.readouterr().err + + +def test_run_releases_makes_each_release_once(repo, onshape, capsys): + element_id = onshape.add("robotFrame.fs", "frame", folders=("Robot",), features=["robotFrame"]) + branched(repo, onshape, "main") + (repo / "pyproject.toml").write_text( + f'[tool.fs]\nbackend = "{BACKEND}"\nfrontend = "{FRONTEND}"\nmain_branch = "main"\n' + ) + run(onshape, "pull") + (repo / "releases").mkdir() + (repo / "releases" / "frame.toml").write_text( + 'script = "robotFrame"\nbump = "minor"\ndescription = "First"\npublish = false\n' + ) + commit_all(repo, "Ask for a release") + + assert run(onshape, "run-releases", "--no-push-tags") == 0 + released = onshape.versions_by_document["back"][-1] + assert (released.name, released.description) == ("Robot frame - v0.1.0", "First [releases/frame.toml]") + assert element_id in onshape.studios("back", released.id) + assert not (repo / "releases" / "frame.toml").exists() + assert git_output(repo, "log", "-1", "--format=%s") == "Release robotFrame (releases/frame.toml)\n" + assert git_output(repo, "status", "--porcelain") == "" + + # Asked for again, it's found made rather than made twice + (repo / "releases" / "frame.toml").write_text('script = "robotFrame"\nbump = "minor"\n') + commit_all(repo, "Ask again") + capsys.readouterr() + assert run(onshape, "run-releases", "--no-push-tags") == 2 + assert "already made Robot frame - v0.1.0" in capsys.readouterr().err + + +def test_branches_prunes_only_its_workspaces_of_branches_gone_from_origin(repo, onshape, tmp_path_factory, capsys): + from fs_cli.branches import MADE_BY_FS + + origin = tmp_path_factory.mktemp("origin") + git(origin, "init", "-q", "--bare") + onshape.add("frame.fs", "1") + branched(repo, onshape) + git(repo, "remote", "add", "origin", str(origin)) + run(onshape, "pull") + commit_all(repo, "Pull") + local(repo, "frame.fs").write_text("2") + run(onshape, "push") + git(repo, "push", "-q", "origin", "main", "feature") + start = onshape.versions_by_document["back"][0].id + onshape.create_workspace("back", start, "merged-and-deleted", MADE_BY_FS) + onshape.create_workspace("back", start, "someone's own", "") + + assert run(onshape, "branches") == 0 + assert "merged-and-deleted (gone from origin)" in capsys.readouterr().out + assert run(onshape, "branches", "--prune", "--yes") == 0 + assert sorted(onshape.workspace_names.values()) == ["feature", "someone's own"] diff --git a/tests/gen_test.py b/tests/gen_test.py index 37041f27..e3c3c129 100644 --- a/tests/gen_test.py +++ b/tests/gen_test.py @@ -100,6 +100,16 @@ def test_generate_keeps_the_existing_version(tmp_path): assert not result.changed +def test_a_definition_configuring_studios_alone_writes_its_exports_alone(tmp_path): + """As ftcFastenerTables.py configures studios from fastenerTables.py's tables, and writes no Feature Studio.""" + (tmp_path / "otherTables.py").write_text("STUDIOS = {}\nEXPORTS = {'other.gen.json': '{}\\n'}\n") + [result] = generate(tmp_path, "2960") + assert (result.output, result.code) == (tmp_path / "other.gen.json", "{}\n") + (tmp_path / "nothing.py").write_text("X = 1\n") + with pytest.raises(GenerateError, match="doesn't define CONTENTS, STUDIOS, or ICON"): + generate(tmp_path, "2960") + + def test_gen_tables_command(tmp_path, monkeypatch, capsys): (tmp_path / "pyproject.toml").write_text( '[tool.fs]\nbackend = "https://cad.onshape.com/documents/d/w/w"\n' @@ -209,3 +219,21 @@ def test_render_sketches(): rendered = SketchMap("BY_SIDE", {"ProfileSide.INSIDE": profile}).render() assert rendered.startswith("export const BY_SIDE = {\n ProfileSide.INSIDE : [\n") assert rendered.endswith(" ] as SketchDataArray,\n };\n") + + +def test_generate_writes_exports_beside_the_definition(tmp_path): + (tmp_path / "tables.py").write_text( + "from fs_cli.tables import Enum\nCONTENTS = [Enum('E', ['A'])]\nEXPORTS = {'tables.gen.json': '{}\\n'}\n" + ) + studio, exported = generate(tmp_path, "2960") + assert studio.output == tmp_path / "tables.gen.fs" + assert (exported.output, exported.code, exported.changed) == (tmp_path / "tables.gen.json", "{}\n", True) + + exported.output.write_text(exported.code) + assert not generate(tmp_path, "2960")[1].changed + + +def test_generate_rejects_exported_feature_studios(tmp_path): + (tmp_path / "tables.py").write_text("CONTENTS = []\nEXPORTS = {'other.fs': ''}\n") + with pytest.raises(GenerateError, match="Feature Studio"): + generate(tmp_path, "2960")