Add better project support - complete list of features in this post

I am creating this post to:

  • try and convince Bambu Lab to finish the implementation of projects that they started when they created Bambu Studio so that users can truly use it to manage a real project.
  • start a discussion with all users about the missing or incomplete features that should be part of a “real” 3D printing project.

The poll is just to make it clear to Bambu Lab that this is important to us so they believe it is in their best interest to spend time on this. (Some of these items have been requested in the GitHub project for almost a year.) Also, as the discussion provides more missing features I will edit this poll and add those choices.
I have provided links to some of the existing requests in the GitHub project.

  • I would like more complete support for projects in Bambu Studio
  • I would like to be able to set presets (printer, filament, process) per plate
  • I would like to more easily manage multiple plates in prepare - like preview provides
  • I would like it to be easy and as automated as possible to add all information needed for uploading to various repositories
  • I would like print jobs (gcode files) for each plate to be stored in project
  • I would like the option to store the project locally as a directory, in addition to having it compressed into a 3MF file
0 voters

Although Bambu Studio allows users to save a “project”, it periodically breaks some of the existing features, such as maintaining metadata for the project. In addition, the project is not transparent, cannot be directly uploaded to various 3D model repositories, and does not support a complex project with many objects and plates that need different settings to print correctly. Working with multiple plates is not as easy as it should be and does not provide the needed features.

User Configured Project Defaults
The user should be able to configure the default profiles that they want to use for new projects. Having a new project just inherit whatever was set in the previously open project is not useful and can be confusing.

Better Support for Multiple Plates

For a complex project with many parts it is likely that some parts will need different print settings. Some parts might be optional. Plates are a way to allow structuring a project so that there can be groups of parts that can be printed at the same time and with the same settings. Plate names make it easy to see what has been sent to the printer. To make this work there are additional features that need to be implemented.

  1. Settings by preset per plate. This is most important feature needed to actually support any complex project in a single 3MF file. In any project with multiple plates it is likely that some plates need different settings. Add better support for managing settings applied by scope · Issue #1838 · bambulab/BambuStudio · GitHub
    a. I would suggest that the settings sidebar be modified to show project settings and a list of plates. When one or more plates is selected in the list, then the presets and individual settings are per plate. Selecting a plate in the list in settings pane is the same as selecting the plate in the canvas sidebar (in preview). Note: I have never used assemblies, so hopefully someone will extend this with necessary information.
    b. Settings per object is not useful. It is too granular and hard to use. In fact, I would suggest that with support for multiple plates that settings per object are not even necessary. I can always put a single object on a plate and then change the settings for that plate.
    c. allow creating a preset from the current settings for a plate with the option of saving it to only the current project. This makes it easy to use for other plates in the project, but prevents cluttering up the global presets.

  2. Plates must be named. Seeing plate numbers in a job queue or at the printer is not very helpful. I suggest the following. Make naming plates easy · Issue #1709 · bambulab/BambuStudio · GitHub
    a. when a new project is created, name the project and the first plate based on the name of the first object added to the plate. This handles the common case of single object projects.
    b. when a new plate is added, open a dialog to allow the name to be entered immediately
    c. use the projectname-platename for print jobs

  3. Provide better plate management by:
    a. provide the same sidebar view of plates in prepare as used in preview.
    b. show plate names instead of just numbers in the plate sidebar list
    c. allow the plates to be reordered by drag and drop in the sidebar list
    d. only show one plate at a time on the canvas (with optional show all?). Allow objects to be dragged from that plate to other plates in the sidebar. Objects not on any plate are always shown on the canvas.
    add plate list sidebar to prepare · Issue #1708 · bambulab/BambuStudio · GitHub

Make it easier to manage all project metadata.

  1. allow a project to be stored locally as a directory to allow easy addition of images, readme files, etc. without fiddling with Bambu Studio. Bambu Studio could just create the directory structure and common files as templates when a new project is created to make it easy for the user.
  2. add a package command that would collect all the files into a single 3MF file in the root of the project directory for transfer/sharing. The 3MF packaged project should just be a zip file so that when shared with others in the community not using Bambu Studio it can just be unzipped and all the information is easily accessible.
  3. The user can just edit files as needed for metadata. The user can drop STL files into the appropriate subdirectory. Gcode files when generated just get stored in the gcode subdirectory, etc.
  4. BBL should work with various online 3D repositories so that a 3MF file could be contain all the required information and be uploaded as a unit. In other words, standardize the directory structure for shared projects and location of required metadata files in it.
  5. provide a presets subdirectory to hold any project specific presets. This has the benefit of allowing users downloading a shared project to look at the presets if they are not using Bambu Studio with their printer.

Store generated files in the project so

  • they do not have to be regenerated
  • they do not change if any presets or profiles change, including changing project setting
  • if the user wants to generate new gcode after changing something in the project they should do so explicitly. This prevents an upgrade to a newer version of Bambu Studio from generating new code for a plate that does not work, but was printing fine previously.
    Store G code for plate in project file · Issue #1914 · bambulab/BambuStudio · GitHub