build_stepped_shaft
Build a stepped cylindrical shaft with multiple diameters. Specify diameters and lengths for each step, and optionally a sweep angle less than 360 for a partial sector.
Instructions
Flecha escalonada — build a stepped (multi-diameter) cylindrical shaft in one call. Standard turned-part workflow for autoparts: flechas de transmisión, bujes con escalones, poleas, ejes de salida.
Junior workflow: "una flecha de Ø10×20, luego Ø20×30, luego Ø15×15". Composes: create_reference_axis(front, top) -> X axis through origin create_sketch("front") -> profile in XY plane create_line × N -> stepped half-silhouette revolve_sketch(axis_name) -> boss-revolve
Args: diameters_mm: List of step diameters in mm. One per step. Must be 1..20 entries, all > 0. v1 has no taper — each step is a pure cylinder of constant diameter. lengths_mm: List of step lengths in mm. Same length as diameters_mm. All > 0. angle_deg: Sweep angle in (0, 360]. Default 360 = full revolution. Partial angles produce a sector (useful for cams or half-housings). merge: True (default) merges with adjacent solid material. False keeps the shaft as a separate body (multi-body modeling).
Returns dict: name, type, dimensions: Standard Feature info from revolve_sketch (type='boss_revolve', D1=angle_deg). axis_name: The "Eje{N}" reference axis created. Reusable in circular_pattern or further revolve calls. step_count, total_length_mm, max_diameter_mm: Computed metadata for the LLM to verify against intent.
Caveat (v1 orientation): the shaft always grows along the +X world axis from the origin, sketched on the Front plane. To orient differently, use revolve_sketch directly with a custom axis + sketch plane.
Caveat (transitions): each step is a square shoulder (no fillet/chamfer between steps). Post-process with fillet/chamfer on the resulting edges if smoother transitions are needed.
Caveat (no taper): each step is a pure cylinder. For tapered shafts (e.g. transmission shafts with conical sections), use revolve_sketch with a triangular profile section.
Example — 3-step pulley shaft: build_stepped_shaft( diameters_mm=[10, 20, 15], lengths_mm=[20, 30, 15], )
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| merge | No | ||
| angle_deg | No | ||
| lengths_mm | Yes | ||
| diameters_mm | Yes |