L1 · PAI-150

Sequencing a process plan

Order a multi-operation plan into a valid sequence, choosing setups, and justify why the order is forced by datums and the surfaces each operation creates.

01
Challenge

Try this first — before any explanation.

Five scrambled operation cards — FACE_TOP, DRILL_4xM4, POCKET, DEBURR, CUTOFF_STOCK. Drag them into an order, pick a setup for each, Run Plan, and get every feature produced with no INFEASIBLE flag. Drill or pocket before facing → DATUM_NOT_ESTABLISHED; deburr first → nothing to deburr; cutoff first → you lose the clamping tail.

The Bench

A topological validator over requires/produces/destroys plus a setup-reachability check — the same one the autograder uses. Edit your order and run.

'.join(my_order))\nprint(rep)","label":"3 — Your order (EDIT)"},{"code":"np.random.seed(2303) if 'np' in dir() else None\nMIN_SETUPS = 1\nproblems = list(rep['errors'])\nif rep['setups'] > MIN_SETUPS:\n problems.append(f'EXTRA_SETUP: {rep[\"setups\"]} setups used; part requires only {MIN_SETUPS}.')\nif not rep['features_complete']:\n problems.append('not every feature produced.')\n\nif not rep['infeasible'] and rep['setups'] <= MIN_SETUPS:\n print('PASS - datum_violations=0, fixture_violations=0, features 5/5, '\n f'setups={rep[\"setups\"]}. The datum-creating op precedes every op that uses it, '\n 'edges before deburr, cutoff last.')\nelse:\n msg = problems[0] if problems else 'infeasible plan.'\n print('FAIL - ' + msg)","label":"4 — Autograder (seed 2303)"}],"intro":"A topological validator over requires/produces/destroys plus a setup-reachability check — the same one the autograder uses. Edit your order and run.","key":"manufacturing/sequencing-a-process-plan","kind":"python","title":"Sequencing a process plan"}">
PYTHON · NUMPY · IN-BROWSER

Sequencing a process plan

A topological validator over requires/produces/destroys plus a setup-reachability check — the same one the autograder uses. Edit your order and run.

02
Model

The idea, built visually.

Five operations: 120 possible orders, and almost all are impossible, not just slower. Every dimension is measured from a datum — a hole located from a face is only as accurate as that face — so the operation that creates a datum must come before every operation that uses it.

Look at the dependencies: facing creates the reference drilling and pocketing need; deburring needs the edges those ops create, so it comes after; cutting the part free destroys your clamping surface, so it comes dead last. A setup is one clamping — every re-fixture spends time and risks losing alignment, so do as much as possible in one setup.

▣ Stage animation: A dependency graph builds node by node (FACE_TOP→DRILL, FACE_TOP→POCKET, {DRILL,POCKET}→DEBURR, all→CUTOFF) then settles into one valid linear order as orange bad-orderings shake out.

03
Guided practice

Build it up, step by step.

  1. Step A (worked): each op declares requires/produces; FACE_TOP produces datum_top, DRILL/POCKET require it, DEBURR requires holes+pocket, CUTOFF destroys the fixture — validate sequence FACE_TOP→DRILL→POCKET→DEBURR→CUTOFF.
  2. Step B (fade): swap so DRILL runs before FACE_TOP, read the exact flag, restore; then put DEBURR first and predict the flag.
  3. Step C (independent): housing_v2 needs features on top AND bottom — introduce a second setup after establishing the bottom datum, keeping setups minimal.
04
Feedback

How the Bench grades your run.

PASS WHEN datum_violations=0, fixture_violations=0, features_complete=total, unreachable_features=0, setups ≤ min_required, infeasible=False, on seed 2303.

  • DATUM_NOT_ESTABLISHED: DRILL_4xM4 requires 'datum_top' but FACE_TOP runs later. Move FACE_TOP before DRILL_4xM4.
  • DEBURR_PREMATURE: DEBURR requires edges from {holes, pocket}, neither exists yet at its position. Sequence DEBURR after DRILL and POCKET.
  • FIXTURE_LOST: operations run after CUTOFF_STOCK, which destroys the fixture. Move CUTOFF_STOCK to the end.
  • EXTRA_SETUP: 3 setups used; the part requires only 2. Group SETUP_A-reachable ops together to remove a re-clamping.
05
Retrieve & space

Bring back what you've already mastered.

  • From 2.1: the POCKET op is your 2.1 toolpath — name the tool-radius constraint that still applies wherever the pocket sits → tool radius ≤ 4 mm corner.
  • From 2.2: which parameter would you watch hardest drilling deep holes? → depth-driven force / peck depth (ties to overload).
  • From M3 preview: if FACE_TOP is skipped, do hole-position tolerances get easier or harder? → harder; variation references a rough surface.
06
Mastery gate

What you must demonstrate to advance.

On housing_v2 (two-setup part), the process plan grades datum_violations=0, fixture_violations=0, features_complete=total, unreachable_features=0, setups ≤ min_required, infeasible=False — and justify why the second setup is introduced where it is. Completes the M2 module gate.

07
Project

How this feeds your build.

The spine the capstone hangs on: in M5 the factory runs exactly this plan at volume; a needless setup shows up as cycle time and cost, and a datum done right keeps yield high. Banks the validated housing_v2 plan.