Which slicer made this file
The archive says so, in two places. Which config member is present names the family, and a marker inside the model XML separates Bambu Studio from its two forks. Open the file in preslice and the header names the slicer and its version.
Which file in the archive gives it away?
The config part, because each slicer writes its own and reads no other:
| What is in the archive | Slicer |
|---|---|
Metadata/Slic3r_PE.config |
PrusaSlicer |
Metadata/project_settings.config |
Bambu Studio, OrcaSlicer, or Creality Print |
a .inst.cfg or .global.cfg, or a Cura/ folder |
Cura |
Rename the file to .zip, open it, and look at the member names. That is the
whole test for four of the five, and it is the one preslice runs first.
How do I tell Bambu Studio from OrcaSlicer and Creality Print?
By a marker in the content, because the three share a file structure.
OrcaSlicer is a Bambu Studio fork and Creality Print is an OrcaSlicer fork, so
all three write the same Metadata/project_settings.config with the same
X-BBL-* headers in Metadata/slice_info.config. The member names cannot
separate them.
Three checks, in this order:
- Creality Print stamps itself. A
Metadata/creality.configmember, or the stringCrealityin the model XML'sApplicationmetadata. This is the same test Creality Print's ownCheck3mfVendor::isCreality3mfruns. - OrcaSlicer stamps itself. The literal
OrcaSlicerin the model XML, or anOrcaSlicer-Versionheader inslice_info.config. - Neither marker, and the structure is Bambu Studio's own.
Creality Print is checked first because its files still look like OrcaSlicer's, so its own marker has to win.
Where is the version written?
In the model part's Application metadata, near the top of
3D/3dmodel.model. The sample file preslice ships reads
<metadata name="Application">BambuStudio-02.05.00.66</metadata>.
PrusaSlicer writes a generated by PrusaSlicer <version> line in its config
part. Creality Print writes strings like Creality_Print V7.1.0.4414 Release.
preslice scans the first few kilobytes of each member for that header, so a
large mesh is never read to find a version string.
What if nothing identifies it?
Then it was not written by a slicer, and that is a normal answer. A .3mf
exported from CAD, or downloaded from a model site, carries geometry and no
vendor part at all. It opens for its shape and there are no print settings to
show, which preslice states rather than showing an empty card.
preslice reports its confidence with the answer: high when a member name identified the file, medium when only the content did, and low when nothing did. A guess presented as a fact would be worse than "not identified".
Why does it matter which one wrote it?
Because it decides what you can do with the file. Settings written by one slicer are not read by another, so knowing the source tells you whether the profile will survive opening it. Moving a file between slicers has what survives each pairing, and the slicers covers what each one writes. The container they all share is defined by the 3MF Core Specification.