L0 · PAI-150

What "manufacturable" means

Given the sensor-mount CAD part, identify at least 3 manufacturability problems and state why each is a problem — each mapped to the correct defect class on a fixed grader seed.

01
Challenge

Try this first — before any explanation.

This part passed every check in the Design course — it's geometrically valid and simulates fine. But a factory can't build it as drawn. Find at least 3 places this part will fight the tools that have to make it, tag the offending feature, and pick the reason. You haven't been taught what to look for — inspect, guess, and tag. Distractors (wrong color, not symmetric) are in the list, so tagging isn't free.

The Bench

The full Bench runs the WebGL inspector; here you re-implement its deterministic geometry tests in numpy — measure each feature, classify the defect, and tag it.

4.0) and (gap < SMALLEST_TOOL_D) # REACH\n\ndefects = {\n 'thin_wall': is_thin_wall(WALL),\n 'no_draft': is_no_draft(DRAFT_DEG),\n 'sharp_internal_corner': is_sharp_corner(FILLET_R),\n 'unreachable_internal_feature': is_unreachable(RIB_DEPTH, RIB_GAP),\n}\nfor name, hit in defects.items():\n print(f'{name:32s} {\"DEFECT\" if hit else \"ok\"}')","label":"2 — Geometric defect tests (reach / form / survive)"},{"code":"# Tag at least 3 distinct defects. Each entry: (defect_class, reason_class).\n# Valid defect_class values are the keys of `defects`. Distractors are NOT valid:\nDISTRACTORS = {'wrong_color', 'not_symmetric', 'part_too_heavy', 'hole_too_small'}\n\n# reason_class must match the test each defect fails: 'survive' | 'form' | 'reach'\nREASON_OF = {\n 'thin_wall': 'survive', 'no_draft': 'form',\n 'sharp_internal_corner': 'reach', 'unreachable_internal_feature': 'reach',\n}\n\n# EDIT THIS LIST — tag the features you think a tool will fight:\nmy_tags = [\n ('thin_wall', 'survive'),\n ('no_draft', 'form'),\n ('sharp_internal_corner', 'reach'),\n]\nprint('you tagged:', [t[0] for t in my_tags])","label":"3 — Your turn: tag the defects"},{"code":"# Deterministic grader: >= 3 distinct TRUE defects, each with the right reason,\n# and ZERO distractor tags accepted.\ncorrect, seen, problems = 0, set(), []\nfor cls, reason in my_tags:\n if cls in DISTRACTORS:\n problems.append(f'\"{cls}\" is a distractor, not a manufacturability defect — color/symmetry never decide whether a tool can reach or form the part.')\n continue\n if cls not in defects:\n problems.append(f'\"{cls}\" is not a recognized feature. Tag a real geometric defect.')\n continue\n if not defects[cls]:\n problems.append(f'{cls} is present but its test passes — it is not actually a defect.')\n continue\n if reason != REASON_OF[cls]:\n problems.append(f'{cls} is real, but reason \"{reason}\" is wrong — it fails the {REASON_OF[cls].upper()} test.')\n continue\n if cls not in seen:\n seen.add(cls); correct += 1\n\nif correct >= 3 and not problems:\n print(f'PASS - {correct}/3 defects correctly tagged and reasoned. '\n 'You found thin wall (survive), no draft (form), sharp corner (reach). '\n 'Carry these names forward; Lesson 1.3 is where you fix them.')\nelse:\n print(f'FAIL - {correct}/3 correct. ' + ' '.join(problems[:2] if problems else\n [f'Only {correct} distinct true defects tagged. Run Draft check on the barrel and section the rib pocket to find more.']))","label":"4 — Autograder (seed 1101)"}],"intro":"The full Bench runs the WebGL inspector; here you re-implement its deterministic geometry tests in numpy — measure each feature, classify the defect, and tag it.","key":"manufacturing/what-manufacturable-means","kind":"python","title":"What \"manufacturable\" means"}">
PYTHON · NUMPY · IN-BROWSER

What "manufacturable" means

The full Bench runs the WebGL inspector; here you re-implement its deterministic geometry tests in numpy — measure each feature, classify the defect, and tag it.

02
Model

The idea, built visually.

In CAD you are a god: you draw a shape and it exists — a wall one molecule thick, a pocket sealed inside solid metal, the screen never says no. But a real part isn't drawn, it's reached: a spinning cutter, molten plastic, a jet of metal has to physically get to every surface, and physical things have size, direction, and limits.

Manufacturable means a real process can reach it, form it, and have it survive. Four ways geometry fights the tool: a wall too thin to survive being made, a side with no draft so a mold grips it forever, a sharp inside corner a round tool can't cut, a feature too deep and narrow for anything to reach.

▣ Stage animation: Bracket morphs from a perfect glowing wireframe to a 'MADE' view where an end-mill stalls in a sharp corner and four problem zones halo in blue — thin wall, no draft, sharp corner, unreachable rib.

03
Guided practice

Build it up, step by step.

  1. Pass A (worked): confirm the pre-placed tag on the barrel wall — Wall probe reads 0.80 mm; reason = too thin to survive the process.
  2. Pass B (hint): Section the boss; its side walls rise at 90.000°. Ask 'how does this come OUT of a mold?' Tag no draft.
  3. Pass C (independent): find the remaining two unaided — the sharp internal corner (FILLET_R = 0) and the deep narrow unreachable rib (RIB_GAP = 3.0, ~24 mm deep).
04
Feedback

How the Bench grades your run.

PASS WHEN At least 3 distinct true defects tagged, each with the reason class that matches its failed test (survive/form/reach), and zero distractors accepted on seed 1101.

  • Tag on the barrel wall is right, but reason 'hole too small' doesn't fit — the probe reads wall = 0.80 mm; the problem is thickness (SURVIVE). Re-pick the reason.
  • 'wrong color' isn't a manufacturability defect — color never changes whether a tool can reach or form the part. Remove it and check the side-wall angles instead.
  • 2 of 3 found. One real defect is still untagged — run Draft check on the barrel: a face at 0.00° off the pull direction can't release from a mold.
  • Reason 'no draft' is correct, but the draft problem is on the boss side-wall, not the base plate. Move the tag onto the vertical wall.
05
Retrieve & space

Bring back what you've already mastered.

  • From Design M1/M2: in the part script, name the variable that sets barrel wall thickness (WALL) and state its value.
  • From Design M2: which manufacturability test (reach/form/survive) does a minimum-wall constraint protect? → survive.
  • Within-lesson: for four mini-parts, pick which of reach/form/survive each most violates — discrimination, not pattern-matching one part.
06
Mastery gate

What you must demonstrate to advance.

In sim, tag ≥3 distinct true defects on the sensor-mount part, each mapped to the correct defect class, with zero distractor tags accepted, on held-out grader seed 1101.

07
Project

How this feeds your build.

Produces the defect ledger for the carried part: 1.2 chooses a process knowing these problems, 1.3 clears them, and the M5 capstone's yield is only achievable because the part was made manufacturable here.