Check Truck Fit
check_truck_fitChecks whether a list of cargo pieces fits a named vehicle. Two capacity limits always checked: loading metres (Lademeter, LDM, Stellplätze) and, if weight is given, payload (Zuladung, Nutzlast). When every piece ALSO carries height_cm, a third, stronger check runs too: a real 3D placement simulation (the SAME stacking/shelf-packing engine kubik.tools' own planner uses, not an approximation) -- this becomes the authoritative fits verdict, since it can correctly say "fits" for a load that stacks well even when the raw floor-footprint LDM math alone would have said "doesn't fit". Still not Ladungssicherung (load securing) or axle-load distribution.
Vehicle profiles (vehicle_id -> German name): "semi_136" = Sattelzug/Sattelauflieger 13,6 m (colloquially also "40-Tonner"), "curtain_136" = Planensattel 13,6 m, "flatbed_136" = Pritsche 13,6 m, "rigid_75" = 7,5-Tonner, "midi_12" = 12-Tonner/Koffer-Lkw, "rigid_18" = 18-Tonner, "rigid_26" = 26-Tonner (3-Achser), "drawbar_40" = Hängerzug, "sprinter_l3h2" = Mercedes Sprinter L3H2 (3,5t), "ducato_l4h2" = Fiat Ducato L4H2 (3,5t), "cont_20"/"cont_40"/"cont_40hc" = 20-/40-/40-Fuß-HC-Container. Cargo like a Gitterbox/Rollbehälter is just another piece by footprint -- no separate cargo-type parameter needed.
Units: length_cm/width_cm/height_cm per piece in centimetres (Länge/Breite/Höhe in cm), weight_kg_per_piece in kilograms (Gewicht in kg). height_cm is optional -- omit it and only the LDM/payload check runs; weight_kg_per_piece is optional too -- if omitted, the payload check is honestly skipped, not guessed. rotatable (default true) says whether a piece may be turned 90° on the floor to fit; fragile (default false) marks a piece nothing heavier should stack on top of, unless it's genuinely load-bearing.
Three modes, by what's given: (1) vehicle_id + pieces -> full fit check; if it does NOT fit, the response additionally includes recommended_vehicles -- the smallest fitting alternatives by payload, e.g. cargo that overloads a 7,5-Tonner might fit a 12-Tonner or 18-Tonner instead (suggest, never auto-pick). (2) vehicle_id alone, no pieces -> that vehicle's own payload_kg/max_ldm_m/deck_width_cm, a plain spec lookup (e.g. "wie viele Stellplätze hat ein Standard-Sattelzug" or "maximale Zuladung Sattelzug"). (3) neither given, or pieces given with no vehicle_id -> the full vehicle list, filtered to fitting ones when pieces were given. An unrecognized vehicle_id also returns the full list -- it never assumes which vehicle you mean.
Worked example: 6 Europaletten (120x80cm), 4.8 tonnes total, against vehicle_id "rigid_75" -- loading metres (2.5 LDM) are well within the 6.2m limit, but 4800kg exceeds the 3500kg payload, so fits=false, limiting_constraint="payload", recommended_vehicles lists "midi_12" (12-Tonner) and "rigid_18" (18-Tonner) first -- the smallest vehicles that hold 4.8t.
Edge cases: if no vehicle profile fits the given cargo at all, says so honestly ("exceeds all vehicle profiles") rather than recommending an impossible option. Utilisation percentages are uncapped on purpose (an overloaded plan reads "137%", not a reassuring clamped "100%"). Maximum 100 piece lines.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pieces | No | List of cargo pieces (up to 100 line items), optionally omitted entirely to just look up a vehicle's specs (with vehicle_id) or list all vehicles (without). Use quantity to combine identical pieces rather than repeating rows. | |
| vehicle_id | No | Vehicle profile id to check against or look up (e.g. "semi_136" = Sattelzug 13,6 m, "rigid_75" = 7,5-Tonner). If omitted or not recognized, the response lists every available vehicle instead of guessing. |