Skip to content

v1.1.73

Choose a tag to compare

@DMontgomery40 DMontgomery40 released this 06 Nov 09:40
fd4fbcb

Fixed

  • list_3mf_plates gives each plate its filaments: the project filaments that plate prints with, and only those, with each one's colour, material, filament id and the first part using it (counterpart/1). Clients asked people to choose spools for every filament any plate used: on the Kass 3D scan rig's Screws plate, which prints only filament 3, Counterpart also asked for filaments 1 and 2 from other plates. A sliced plate uses Studio's own plate_N.json filament_ids. An unsliced plate is worked out as Bambu Studio's CLI does (PartPlate::get_extruders_under_cli, PartPlate.cpp:1298-1420; ModelVolume::get_extruders, Model.cpp:3357-3412): each part's filament, its painted facets, including meshes a component keeps in the root model (a component without p:path, bbs_3mf.cpp:4131-4148) (decoded as TriangleSelector::deserialize reads them, TriangleSelector.cpp:2111-2139), feature filaments, support and raft filaments, layer ranges and the plate's tool changes. A mixed filament counts as the filaments it mixes (PartPlate.cpp:1437-1449). Feature filaments and support follow what the slice applies rather than Studio's plate list where the two differ: a part that names no extruder prints with the project's wall, sparse and solid infill filaments, a part's or object's feature filament counts whether or not separate_filaments_for_features is set (PrintObject.cpp:3105-3150; libslic3r never reads that key), and support and raft resolve one setting at a time, the object's own else the project's (PrintObject.cpp:3052-3063), with support filament 0 following the object (Print.cpp:490-501). Negative parts, support blockers and enforcers, copies that aren't printable (checked per copy, as each build item carries its own flag: bbs_3mf.cpp:4183-4185, PartPlate.cpp:1311-1322) and other plates don't count; a mesh too large to read is taken as unpainted rather than failing the listing. Checked against two projects written by Bambu Studio 02.08.02.61's CLI on a Mac (two plates, three filaments; sliced and unsliced give the same answer as Studio's own slice) and the scan rig's metadata.
  • print_3mf sends a tray only for the filaments the plate prints and -1 for every other project filament, on the LAN and plug-in routes, as Bambu Studio does (SelectMachineDialog::get_ams_mapping_result, SelectMachine.cpp:1463-1500). A caller's project-level ams_mapping with trays for unused filaments was sent as it was. Checked with unit tests; no printer contacted.