Check whether molds fit together on a rotational-molding machine arm.
Every answer comes from the deterministic RotoSpider geometric layout
engine: rotation-envelope and dead-height checks, pairwise mold-to-mold
clearance, offset-arm riser selection, and ring arrangements for 3+
identical molds. It never returns a physically invalid layout.
Args:
molds: List of mold objects. Use one explicit unit convention:
Box/frame mold: {"length_mm": L, "width_mm": W, "height_mm": H}.
Cylinder/tank mold: {"diameter_mm": D, "height_mm": H}.
Decimal-inch aliases are length_in, width_in, height_in, and
diameter_in. Each value is converted once to canonical
micrometres; do not give both aliases for the same value.
Optional per mold: "name", "weight_kg", "quantity" (default 1).
machine: Public-sample straight-arm preset. Available models are
listed in the tool description. Leave empty AND give no
explicit geometry to scan all presets ("which machine can take
these molds?").
arm_type: 'straight' (dual spiders) or 'offset' (single-spider
offset/L arm). Empty = both.
spider_diameter_mm: Custom machine - spider (mounting plate)
diameter. Giving this plus envelope_diameter_mm switches to
custom-machine mode instead of presets.
envelope_diameter_mm: Custom machine - rotation envelope diameter
(for offset arms: the vertical envelope diameter).
dead_height_mm: Custom straight arm - unusable center height
between the upper and lower spider surfaces.
offset_spider_y_mm: Custom offset arm - spider Y offset from the
spider center to the sphere center (required for custom offset).
offset_horz_diameter_mm: Custom offset arm - horizontal usable
envelope diameter after side trim (defaults to envelope).
riser_heights_mm: Custom offset arm - available riser heights; the
solver picks the best (or none).
*_in: Decimal-inch aliases for the matching custom-arm and
clearance *_mm arguments.
max_load_weight_kg: Optional arm weight capacity; the solver loads
molds only up to this total weight.
clearance_target_mm: Target mold-to-mold clearance (default 300).
clearance_min_mm: Minimum acceptable clearance (default 150).
display_unit: 'mm' (default) or 'in'. Canonical result fields remain
millimetres; 'in' adds a display projection rounded to 0.00001 in.
Returns a summary sentence plus per-arm results: feasible, placed vs
requested counts (per mold type when available), selected riser height,
spider utilization, center-of-gravity offset, achieved clearance, and
the engine's reason when molds do not fit.
Connector