Internals - slic3r/Slic3r GitHub Wiki

PrintObject/ModelObject

  • PrintObjects should be treated as ephemeral -- that is, overwritten any time a user makes a change.
  • Any user-customizable option should be stored to or read from ModelObject.
    • This permits saving and reloading from AMF.

Model* classes hold the input data, and any per-object configuration override. A Model basically is the content of the plater. A model can be saved to an AMF file and reloaded back. Print* classes are the temporary classes performing the job. The GUI automatically loads/reloads changes to Print* whenever a Model* is updated.