{
  "id": "process-windows",
  "source": "https://ctrlplanner.com/walkback",
  "license": "CC-BY-4.0",
  "attribution": "ctrlPlanner, https://ctrlplanner.com/walkback",
  "title": "Process windows for tolerance walk-back",
  "standard": [
    "MIL-PRF-8625",
    "MIL-STD-870"
  ],
  "description": "Typical per-side windows for the processes that move a dimension between the machine and the final inspection, and what each does to the dimension.",
  "directionNote": "A coating adds material: on an outside surface that makes the dimension larger, in a bore it makes it smaller. Grinding removes material and runs the opposite way to both. A dimension measured between two surfaces that get the same treatment -- a shoulder depth, a groove width -- does not move at all, because both faces move together.",
  "surfacesNote": "Every window below is PER SIDE. An overall length coated on both ends, or a diameter coated on both flanks, moves by twice the figure; a dimension measured to a face that is masked or machined afterwards moves by once. A 60 degree thread moves about twice again on pitch diameter: see the thread multipliers dataset.",
  "processes": [
    {
      "key": "plate",
      "name": "Plating",
      "material": "adds",
      "halfBuildup": false,
      "perSideWindow": {
        "defaultMin": 0.0002,
        "defaultMax": 0.0005,
        "floor": 0.0001,
        "ceiling": 0.002,
        "step": 0.0001,
        "unit": "in"
      },
      "note": "Coat thickness per side, as the plater quotes it."
    },
    {
      "key": "anodize",
      "name": "Anodize",
      "material": "adds",
      "halfBuildup": true,
      "halfBuildupNote": "The call-out states total coat thickness and only about half of it sits above the base metal, so the effective delta is halved.",
      "perSideWindow": {
        "defaultMin": 0.0001,
        "defaultMax": 0.001,
        "floor": 0.0001,
        "ceiling": 0.004,
        "step": 0.0001,
        "unit": "in"
      },
      "note": "Total coat called out on the print. Half of it sits above the base metal."
    },
    {
      "key": "grind",
      "name": "Grinding",
      "material": "removes",
      "halfBuildup": false,
      "perSideWindow": {
        "defaultMin": 0.0025,
        "defaultMax": 0.0025,
        "floor": 0.0005,
        "ceiling": 0.03,
        "step": 0.0005,
        "unit": "in"
      },
      "note": "Stock left per side for the grinder to clean up."
    }
  ]
}
