This is a Perl script that will convert printer, print, and filament profile settings from PrusaSlicer and SuperSlicer INI files to JSON format for use with OrcaSlicer.
--input
optionImport-->Import Configs...
function. By default, this script puts the converted .json files directly into OrcaSlicer's config folder and they should appear after you reload OrcaSlicer.version
key. At the moment, this script hardcodes a value of "1.6.0.0" for this key. I don't know if this is relevant for general usage.filament_max_volumetric_speed
to be zero like PrusaSlicer and SuperSlicer do. So when importing a filament profile that has this parameter set to zero, the script will use a reasonable default value instead.inherits
parameter if it exists in the source profile, but I have not been able to test this because none of my profiles "inherit" from other profiles. If your profiles rely on inheritance, the behavior in OrcaSlicer might be unpredictable.inherits
parameter if it exists in the source profile, but I have not been able to test this because none of my profiles "inherit" from other profiles. If your profiles rely on inheritance, the behavior in OrcaSlicer might be unpredictable.Make sure you have Perl installed on your system. You can check the version by running the following command:
perl -v
Install the required Perl modules using CPAN or your system's package manager. For example, if you're using CPAN:
cpan Getopt::Long File::Basename File::Glob File::HomeDir Path::Class Path::Tiny String::Escape Term::Choose Term::Form::ReadLine Text::SimpleTable JSON::XS
Clone this repository or download the script directly from GitHub.
git clone https://github.com/theophile/SuperSlicer_to_Orca_scripts.git
For interactive mode, run the superslicer_to_orca.pl
script with no command-line options:
perl superslicer_to_orca.pl
The script will then guide you through the process of selecting which profiles you'd like to convert and will prompt you for any additional information it needs. Afterwards, you'll see a summary screen telling you how everything went.
Optionally, you can use command-line options to tell the script what you'd like to do and what settings to use, in which case it will only prompt you for information you haven't specified. For example:
perl superslicer_to_orca.pl --input <PATTERN> --outdir <DIRECTORY> [OPTIONS]
On my Windows-based system, the following command will batch convert all my SuperSlicer filament profiles without overwriting any existing files and the newly converted filament profiles will all appear in OrcaSlicer the next time it is started:
perl superslicer_to_orca.pl --input C:\Users\%USERNAME%\AppData\Roaming\SuperSlicer\filament\*.ini --outdir C:\Users\%USERNAME%\AppData\Roaming\OrcaSlicer\ --on-existing skip
[!IMPORTANT] If an input filename contain spaces, you need to enclose it in quotes or you will get errors.
What Super/PrusaSlicer calls a "printer," OrcaSlicer calls a "machine." Super/PrusaSlicer stores some printer data (mostly related to network access to the printer) in a separate "physical printer" .ini file located in the physical_printer
subdirectory. OrcaSlicer stores that network data in the main "machine" .json file, but network access still will not be enabled unless the "machine" is linked (via the inherits
parameter) to a printer that has been selected and configured from the available system presets in OrcaSlicer.
If you want to have any kind of network access to your converted printer/machine profile, then before using this script, open OrcaSlicer and make sure your target printer appears under the heading System presets
in your printers list.
Then rerun the script. It will prompt you to select from the detected "physical printer" profiles. Altneratively, you can use the --physical-printer
flag to specify the location of the .ini file for the physical printer you want to use.
The script accepts the following command-line options:
--input <PATTERN>
: Specifies the input PrusaSlicer or SuperSlicer INI file(s). Use this option to bypass the interactive profile selector. You can use wildcards to specify multiple files. (Optional)--outdir <DIRECTORY>
: Specifies the ROOT OrcaSlicer settings directory. (Optional) If this is not specified, the script will default to the typical location, which is:
C:\Users\%USERNAME%\AppData\Roaming\OrcaSlicer
~/Library/Application Support/OrcaSlicer
~/.config/OrcaSlicer
--nozzle-size <DECIMAL>
: For print profiles, specifies the diameter (in mm) of the nozzle the print profile is intended to be used with (e.g. --nozzle-size 0.4). If this is not specified, the script will prompt you to enter a nozzle size when converting print profiles. (Optional)--physical-printer <PATTERN>
: Specifies the INI file for the corresponding "physical printer" when converting printer config files. If this option is not used, the script will give you a choice among detected "physical printer" profiles. See A Note About Printer Profiles for more information. (Optional)--on-existing <CHOICE>
: Forces the behavior when an output file already exists. Valid choices are: skip
to leave all existing files alone, overwrite
to overwrite all existing output files, and merge
to merge new key/value pairs into all existing output files while leaving existing key/value pairs unmodified. (Optional)--force-output
: Forces the script to output the converted JSON files to the output directory specified with --outdir
. Use this option if you do not want the new files to be placed in your OrcaSlicer settings folder. (Optional)-h
, --help
: Displays usage information.Contributions to this project are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.
This script is licensed under the GNU General Public License v3.0.