diff options
-rw-r--r-- | .github/CODEOWNERS | 4 | ||||
-rw-r--r-- | .github/CONTRIBUTING.md | 30 | ||||
-rw-r--r-- | .github/FUNDING.yml | 1 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE.md | 17 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/bug_report.md | 11 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/feature_request.md | 7 | ||||
-rw-r--r-- | .github/workflows/ccpp_mac.yml | 36 | ||||
-rw-r--r-- | .github/workflows/ccpp_mac_rc.yml | 36 | ||||
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | README.md | 139 | ||||
-rw-r--r-- | SECURITY.md | 16 | ||||
-rw-r--r-- | create_release.py | 4 | ||||
-rw-r--r-- | doc/How to build - Linux et al.md | 11 | ||||
-rw-r--r-- | doc/How to build - Mac OS.md | 8 | ||||
-rw-r--r-- | doc/How to build - Windows.md | 2 | ||||
-rw-r--r-- | resources/ui_layout/colors.ini | 11 | ||||
-rw-r--r-- | src/slic3r/GUI/AboutDialog.cpp | 2 | ||||
-rw-r--r-- | src/slic3r/GUI/GUI_App.cpp | 2 | ||||
-rw-r--r-- | version.inc | 18 |
19 files changed, 191 insertions, 167 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 093f7d073..10b20b459 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,3 +1,3 @@ -* @lordofhyphens @supermerill +* @supermerill @lordofhyphens -.github/CODEOWNERS @lordofhyphens +.github/CODEOWNERS @supermerill diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index e75928546..33cd09336 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,36 +1,23 @@ # CONTRIBUTING -## Bug Reports +* SuperSlicer and Slic3r are merging so you should be able to use the superslicer repository or the slic3r one. (when the switch will be completed) -Did you encounter an issue with using Slic3r? Fear not! This guide will help you to write a good bug report in just a few, simple steps. +## Bug Reports -There is a good chance that the issue, you have encountered, is already reported. Please check the [list of reported issues](https://github.com/alexrj/Slic3r/issues) before creating a new issue report. If you find an existing issue report, feel free to add further information to that report. +Did you encounter an issue with using SuperSlicer? Fear not! This guide will help you to write a good bug report in just a few, simple steps. -If you are reporting an issue relating to a release version of Slic3r, it would help a lot if you could also confirm that the behavior is still present in the newest build [(windows)](https://bintray.com/lordofhyphens/Slic3r/slic3r_dev/). Otherwise your issue will be closed as soon as someone else isn't able to reproduce it on current master. +There is a good chance that the issue, you have encountered, is already reported. Please check the [list of reported issues](https://github.com/supermerill/SuperSlicer/issues) before creating a new issue report. If you find an existing issue report, feel free to add further information to that report. -When possible, please include the following information when [reporting an issue](https://github.com/alexrj/Slic3r/issues/new): -* Slic3r version (See the about dialog for the version number. If running from git, please include the git commit ID from `git rev-parse HEAD` also.) -* Operating system type + version -* Steps to reproduce the issue, including: - * Command line parameters used, if any - * Slic3r configuration file (Use ``Export Config...`` from the ``File`` menu - please don't export a bundle) - * Expected result - * Actual result - * Any error messages -* If the issue is related to G-code generation, please include the following: - * STL, OBJ or AMF input file (please make sure the input file is not broken, e.g. non-manifold, before reporting a bug) - * a screenshot of the G-code layer with the issue (e.g. using [Pronterface](https://github.com/kliment/Printrun) or preferably the internal preview tab in Slic3r). -* If the issue is a request for a new feature, be ready to explain why you think it's needed. - * Doing more preparatory work on your end makes it more likely it'll get done. This includes the "how" it can be done in addition to the "what". - * Define the "What" as strictly as you can. Consider what might happen with different infills than simple rectilinear. +If you are reporting an issue relating to a release version of SuperSlicer, it would help a lot if you could also confirm that the behavior is still present in the [newest build](https://github.com/supermerill/SuperSlicer/actions). +Please include the needed information when [reporting an issue](https://github.com/supermerill/SuperSlicer/issues/new) (follow the template and add your project file!) Please make sure only to include one issue per report. If you encounter multiple, unrelated issues, please report them as such. Simon Tatham has written an excellent on article on [How to Report Bugs Effectively](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html) which is well worth reading, although it is not specific to Slic3r. ## Submitting a Patch -Do you want to help fix issues in or add features to Slic3r? That's also very, very welcome :) +Do you want to help fix issues in or add features to SuperSlicer/Slic3r? That's also very, very welcome :) Basically you can follow the [GitHub flow](https://guides.github.com/introduction/flow/) for submitting @@ -57,6 +44,5 @@ contributing to the Slic3r project. ## Communication +* [Superslicer discord invite link](https://discord.gg/ygBBdRRwJY) * #slic3r on [FreeNode](https://webchat.freenode.net): talk to _Sound_, _LoH_ or the other members of the Slic3r community. -* Drop Alessandro a line at aar@cpan.org. -* Drop Joseph a line at lenox.joseph@gmail.com diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 78d7851b7..d7404208b 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,7 @@ # These are supported funding model platforms github: [supermerill]# Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +ko_fi: superslicer #patreon: # Replace with a single Patreon username #open_collective: # Replace with a single Open Collective username #ko_fi: # Replace with a single Ko-fi username diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index c890df33c..6e04d11a0 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,11 +1,5 @@ ### Version
-_Version of Slic3r used goes here_
-
-_Use `About->About Slic3r` for release versions._
-
-_Do not report Prusa3D Slic3r bugs here without confirming it is a problem on a development release of Slic3r, or your issue will be closed. *Only* use normal Slic3r version IDs._
-
-_For -dev versions, use `git describe --tag` or get the hash value for the version you downloaded or `git rev-parse HEAD`_
+_Version of SuperSlicer used goes here (help->about)_
### Operating system type + version
_What OS are you using, and state any version #s_
@@ -13,14 +7,13 @@ _What OS are you using, and state any version #s_ ### Behavior
* _Describe the problem_
* _Steps needed to reproduce the problem_
- * _If this is a command-line slicing issue, include the options used_
* _Expected Results_
* _Actual Results_
- * _Screenshots from __*Slic3r*__ preview are preferred_
+ * _Screenshots if useful_
_Is this a new feature request?_
Related guides for writing feature requests: http://meta.stackexchange.com/a/259196 http://nickohrn.com/2013/09/write-great-feature-request-bug-report/
-
-#### STL/Config (.ZIP) where problem occurs
-_Upload a zipped copy of an STL and your config (`File -> Export Config`)_
+#### Project File (.3MF) where problem occurs
+_*Upload a Project File* (.3MF) `Plater -> Save Project as...`_
+_You have to zip it (or rename it to .zip) to be able to drag& drop it here_
\ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index f7692d54d..43e075719 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -4,8 +4,6 @@ about: Create a report to help us improve --- -### Do not report Prusa3D Slic3r bugs here without confirming it is a problem on a development release of Slic3r, or your issue will be closed. [Development builds of Slic3r](https://dl.slic3r.org/dev). [Prusa3D Issue Tracker](https://github.com/Prusa3D/Slic3r/issues) - **Describe the bug** A clear and concise description of what the bug is. @@ -16,8 +14,8 @@ Steps to reproduce the behavior: 3. Scroll down to '....' 4. See error -**3D Model and Slic3r Configuration Export** -Please upload a ZIP archive containing a copy of the 3D model you are seeing this bug with and a CTRL-E export of the configuration used. +**>> Project File <<** +*Please* upload a ZIP archive containing the project file used when the problem arise. Please export it just before the problem occur. Even if did nothing and there is no object, export it as it contains your current configuration. **Expected behavior** A clear and concise description of what you expected to happen. @@ -27,10 +25,7 @@ If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. MacOS, Linux, Windows] - - Version [e.g. 1.3.0] - - _Do not report Prusa3D Slic3r bugs here without confirming it is a problem on a development release of Slic3r, or your issue will be closed. *Only* use normal Slic3r version IDs._ - - _For -dev versions, use `git describe --tag` or get the hash value for the version you downloaded or `git rev-parse HEAD`_ - - _Use `About->About Slic3r` for release versions._ + - Version [e.g. 2.3.55.5], Use `Help->About`_ **Additional context** Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 40d1a461f..aed184687 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -4,16 +4,17 @@ about: Suggest an idea for this project --- -### Do not request features for the Prusa3D fork of Slic3r here without confirming it is applicable to the mainline Slic3r, or your issue will be closed. [Development builds of Slic3r](https://dl.slic3r.org/dev). [Prusa3D Issue Tracker](https://github.com/Prusa3D/Slic3r/issues) - **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. +**Describe how it would work** +Be as descriptive as your skill level allows you. + **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** -Add any other context or screenshots about the feature request here. +Add any other context or paint drawing about the feature request here. diff --git a/.github/workflows/ccpp_mac.yml b/.github/workflows/ccpp_mac.yml index 9f64ec4fc..fecb8b41e 100644 --- a/.github/workflows/ccpp_mac.yml +++ b/.github/workflows/ccpp_mac.yml @@ -46,7 +46,7 @@ jobs: - name: cmake working-directory: ./build run: cmake .. -DCMAKE_PREFIX_PATH="$PWD/../deps/build/destdir/usr/local" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13" -DSLIC3R_STATIC=1 - - name: make Slic3r + - name: make SuperSlicer working-directory: ./build run: make Slic3r - name: make .mo @@ -62,32 +62,32 @@ jobs: working-directory: ./build run: | mkdir pack - mkdir pack/Slic3r - mkdir pack/Slic3r/Slic3r.app - mkdir pack/Slic3r/Slic3r.app/Contents - mkdir pack/Slic3r/Slic3r.app/Contents/_CodeSignature - mkdir pack/Slic3r/Slic3r.app/Contents/Frameworks - mkdir pack/Slic3r/Slic3r.app/Contents/MacOS + mkdir pack/SuperSlicer + mkdir pack/SuperSlicer/SuperSlicer.app + mkdir pack/SuperSlicer/SuperSlicer.app/Contents + mkdir pack/SuperSlicer/SuperSlicer.app/Contents/_CodeSignature + mkdir pack/SuperSlicer/SuperSlicer.app/Contents/Frameworks + mkdir pack/SuperSlicer/SuperSlicer.app/Contents/MacOS - name: copy Resources working-directory: ./build run: | - cp -Rf ../resources pack/Slic3r/Slic3r.app/Contents/Resources - cp pack/Slic3r/Slic3r.app/Contents/Resources/icons/Slic3r.icns pack/Slic3r/Slic3r.app/Contents/resources/Slic3r.icns - cp src/Info.date.plist pack/Slic3r/Slic3r.app/Contents/Info.plist + cp -Rf ../resources pack/SuperSlicer/SuperSlicer.app/Contents/Resources + cp pack/SuperSlicer/SuperSlicer.app/Contents/Resources/icons/SuperSlicer.icns pack/SuperSlicer/SuperSlicer.app/Contents/resources/SuperSlicer.icns + cp src/Info.date.plist pack/SuperSlicer/SuperSlicer.app/Contents/Info.plist echo -n -e 'APPL????\x0a' > PkgInfo - cp PkgInfo pack/Slic3r/Slic3r.app/Contents/PkgInfo + cp PkgInfo pack/SuperSlicer/SuperSlicer.app/Contents/PkgInfo # echo -n -e '\xff\xfeAPPL\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x0a\x00' > PkgInfo - name: copy bin and do not let it lower case working-directory: ./build run: | - cp -f src/Slic3r pack/Slic3r/Slic3r.app/Contents/MacOS/Slic3r - chmod u+x pack/Slic3r/Slic3r.app/Contents/MacOS/Slic3r - tar -cvf Slic3r.tar pack/Slic3r + cp -f src/superslicer pack/SuperSlicer/SuperSlicer.app/Contents/MacOS/SuperSlicer + chmod u+x pack/SuperSlicer/SuperSlicer.app/Contents/MacOS/SuperSlicer + tar -cvf SuperSlicer.tar pack/SuperSlicer - name: create dmg working-directory: ./build run: | - hdiutil create -ov -fs HFS+ -volname "Slic3r" -srcfolder "pack/Slic3r" temp.dmg - hdiutil convert temp.dmg -format UDZO -o Slic3r.dmg + hdiutil create -ov -fs HFS+ -volname "SuperSlicer" -srcfolder "pack/SuperSlicer" temp.dmg + hdiutil convert temp.dmg -format UDZO -o SuperSlicer.dmg # - name: signing Resources (creating CodeResources inside _CodeSignature) # working-directory: . # run: codesign -s <identity> Resources @@ -96,9 +96,9 @@ jobs: uses: actions/upload-artifact@v1.0.0 with: name: nightly_macos.tar - path: build/Slic3r.tar + path: build/SuperSlicer.tar - name: Upload artifact uses: actions/upload-artifact@v1.0.0 with: name: nightly_macos.dmg - path: build/Slic3r.dmg + path: build/SuperSlicer.dmg diff --git a/.github/workflows/ccpp_mac_rc.yml b/.github/workflows/ccpp_mac_rc.yml index 8ab5360f1..5cd943f39 100644 --- a/.github/workflows/ccpp_mac_rc.yml +++ b/.github/workflows/ccpp_mac_rc.yml @@ -46,7 +46,7 @@ jobs: - name: cmake working-directory: ./build run: cmake .. -DCMAKE_PREFIX_PATH="$PWD/../deps/build/destdir/usr/local" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13" -DSLIC3R_STATIC=1 - - name: make Slic3r + - name: make SuperSlicer working-directory: ./build run: make Slic3r - name: make .mo @@ -62,32 +62,32 @@ jobs: working-directory: ./build run: | mkdir pack - mkdir pack/Slic3r - mkdir pack/Slic3r/Slic3r.app - mkdir pack/Slic3r/Slic3r.app/Contents - mkdir pack/Slic3r/Slic3r.app/Contents/_CodeSignature - mkdir pack/Slic3r/Slic3r.app/Contents/Frameworks - mkdir pack/Slic3r/Slic3r.app/Contents/MacOS + mkdir pack/SuperSlicer + mkdir pack/SuperSlicer/SuperSlicer.app + mkdir pack/SuperSlicer/SuperSlicer.app/Contents + mkdir pack/SuperSlicer/SuperSlicer.app/Contents/_CodeSignature + mkdir pack/SuperSlicer/SuperSlicer.app/Contents/Frameworks + mkdir pack/SuperSlicer/SuperSlicer.app/Contents/MacOS - name: copy Resources working-directory: ./build run: | - cp -Rf ../resources pack/Slic3r/Slic3r.app/Contents/Resources - cp pack/Slic3r/Slic3r.app/Contents/Resources/icons/Slic3r.icns pack/Slic3r/Slic3r.app/Contents/resources/Slic3r.icns - cp src/Info.date.plist pack/Slic3r/Slic3r.app/Contents/Info.plist + cp -Rf ../resources pack/SuperSlicer/SuperSlicer.app/Contents/Resources + cp pack/SuperSlicer/SuperSlicer.app/Contents/Resources/icons/SuperSlicer.icns pack/SuperSlicer/SuperSlicer.app/Contents/resources/SuperSlicer.icns + cp src/Info.date.plist pack/SuperSlicer/SuperSlicer.app/Contents/Info.plist echo -n -e 'APPL????\x0a' > PkgInfo - cp PkgInfo pack/Slic3r/Slic3r.app/Contents/PkgInfo + cp PkgInfo pack/SuperSlicer/SuperSlicer.app/Contents/PkgInfo # echo -n -e '\xff\xfeAPPL\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x0a\x00' > PkgInfo - name: copy bin and do not let it lower case working-directory: ./build run: | - cp -f src/Slic3r pack/Slic3r/Slic3r.app/Contents/MacOS/Slic3r - chmod u+x pack/Slic3r/Slic3r.app/Contents/MacOS/Slic3r - tar -cvf Slic3r.tar pack/Slic3r + cp -f src/superslicer pack/SuperSlicer/SuperSlicer.app/Contents/MacOS/SuperSlicer + chmod u+x pack/SuperSlicer/SuperSlicer.app/Contents/MacOS/SuperSlicer + tar -cvf SuperSlicer.tar pack/SuperSlicer - name: create dmg working-directory: ./build run: | - hdiutil create -ov -fs HFS+ -volname "Slic3r" -srcfolder "pack/Slic3r" temp.dmg - hdiutil convert temp.dmg -format UDZO -o Slic3r.dmg + hdiutil create -ov -fs HFS+ -volname "SuperSlicer" -srcfolder "pack/SuperSlicer" temp.dmg + hdiutil convert temp.dmg -format UDZO -o SuperSlicer.dmg # - name: signing Resources (creating CodeResources inside _CodeSignature) # working-directory: . # run: codesign -s <identity> Resources @@ -96,9 +96,9 @@ jobs: uses: actions/upload-artifact@v1.0.0 with: name: rc_macos.tar - path: build/Slic3r.tar + path: build/SuperSlicer.tar - name: Upload artifact uses: actions/upload-artifact@v1.0.0 with: name: rc_macos.dmg - path: build/Slic3r.dmg + path: build/SuperSlicer.dmg diff --git a/.gitignore b/.gitignore index 1d68b940c..049c24a72 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,6 @@ xs/assertlib* local-lib build* deps/deps-* + +# MacOS Ignores +.DS_Store @@ -1,93 +1,108 @@ -![](var/Slic3r_128px.png) Slic3r [![Build Status](https://travis-ci.org/slic3r/Slic3r.svg?branch=master)](https://travis-ci.org/slic3r/Slic3r) [![Build status](https://ci.appveyor.com/api/projects/status/8iqmeat6cj158vo6?svg=true)](https://ci.appveyor.com/project/lordofhyphens/slic3r) [![Build Status](http://osx-build.slic3r.org:8080/buildStatus/icon?job=Slic3r)](http://osx-build.slic3r.org:8080/job/Slic3r)![Coverity Status](https://scan.coverity.com/projects/17257/badge.svg) -====== -We have automated builds for Windows (64-bit) and OSX (>= 10.7). [Get a fresh build now](http://dl.slic3r.org/dev/) and stay up-to-date with the development! +[![you can get this shield at shields.io](https://img.shields.io/discord/771316156203270154?color=7289da&logo=discord&logoColor=white)](https://github.com/supermerill/SuperSlicer/issues/611#issuecomment-907833287) [![you can get this shield at shields.io](https://img.shields.io/reddit/subreddit-subscribers/slic3r)](https://reddit.com/r/slic3r) +# SuperSlicer -The MacOS X build server is kindly sponsored by: <img width=150 src=https://cloud.githubusercontent.com/assets/31754/22719818/09998c92-ed6d-11e6-9fa0-09de638f3a36.png /> +**A PrusaSlicer fork (which is a slic3r fork)** (previously Slic3r++) -### So, what's this Slic3r? +Prebuilt Windows, Linux and macOS 64-bit releases are available through the [git releases page](https://github.com/supermerill/SuperSlicer/releases). The Linux & macOS builds aren't tested (by me), just compiled, so please report any bugs that may occur during use. +Nightly builds are available through the [git actions page](https://github.com/supermerill/SuperSlicer/actions). Click on the build for your platform and then on 'Artifacts (1)' in the top right corner. -Slic3r is mainly a **toolpath generator** for 3D printers: it reads 3D models (STL, OBJ, AMF, 3MF) and it converts them into **G-code** instructions for 3D printers. But it does much more than that, see the [features list](#features) below. +SuperSlicer takes 3D models (STL, OBJ, AMF) and converts them into G-code +instructions for FFF printers or PNG layers for mSLA 3D printers. It's compatible with any modern printer based on the RepRap toolchain which is running a firmware based on Marlin, Prusa, Klipper, etc. -Slic3r was born in **2011** within the RepRap community and thanks to its high configurability became the swiss-army knife for 3D printing. It served as a platform for implementing several **new (experimental) ideas that later became technology standards**, such as multiple extruders, brim, variable-height layers, per-object settings, modifiers, post-processing scripts, G-code macros and more. Despite being based on volunteer efforts, Slic3r is still pushing the boundaries of 3D printing. +SuperSlicer is based on [PrusaSlicer](https://github.com/prusa3d/PrusaSlicer) by Prusa Research. +PrusaSlicer is based on [Slic3r](https://github.com/Slic3r/Slic3r) by Alessandro Ranellucci and the RepRap community. -Slic3r has been rebased from the active PrusaSlicer and SuperSlicer forks with an eye towards continuing pushing the boundaries of 3D printing and being an slicer for all printers. +See the [wiki](https://github.com/supermerill/SuperSlicer/wiki) and +the [documentation directory](doc/) for information about compilation. -Slic3r is: +### What are SuperSlicer main features? main new features/differences? -* **Open:** it is totally **open source** and it's **independent from any commercial company** or printer manufacturer. We want to keep 3D printing open and free. -* **Compatible:** it supports all the known G-code dialects (Marlin, Repetier, Mach3, LinuxCNC, Machinekit, Smoothie, Makerware, Sailfish). -* **Advanced:** many configuration options allow for fine-tuning and full control. While novice users often need just few options, Slic3r is mostly used by advanced users. -* **Community-driven:** new features or issues are discussed in the [GitHub repository](https://github.com/slic3r/Slic3r/issues). Join our collaborative effort and help improve it! -* **Robust:** the codebase includes more than 1,000 unit and regression tests, collected in 6 years of development. -* **Modular:** the core of Slic3r is libslic3r, a C++ library that provides a granular API and reusable components. -* **Embeddable:** a complete and powerful command line interface allows Slic3r to be used from the shell or integrated with server-side applications. -* **Powerful:** see the list below! +* Custom-made generated calibration tests. +* **Ironing** top surface & many new settings to fine-tune the top surface quality, like 'only one perimeter on top'. +* A "denser infill" option for supporting the (solid) top layers. +* Better **Thin walls** (anchored inside the print, no more random bits at the ends, embedded in perimeter loops). +* Options to change holes dimensions and/or geometry, to print them at the right size. +* Better overhangs (add perimeters if needed, slice them in opposite direction each layer). +* Brim rework: many more options (inside, outside only, 'ears', per object) +* Some new seam options, to help hide them. +* Built-in calibration prints +* Built-in object generation script +* Can join perimeters into a big one to avoid travel moves. +* Many other little options and corrections (like the filled concentric pattern). +* It has also all the current slic3rPE/PrusaSlicer features. -See the [project homepage](http://slic3r.org/) at slic3r.org for more information. +### Complete changelog [here](https://github.com/supermerill/SuperSlicer/wiki) -### <a name="features"></a>Features +See the wiki for examples. -(Most of these are also available in the command line interface.) +### What are SuperSlicer / PrusaSlicer / Slic3r's main features? -* **G-code generation** for FFF/FDM printers; -* **conversion** between STL, OBJ, AMF, 3MF and POV formats; -* **auto-repair** of non-manifold meshes (and ability to re-export them); -* **SVG export** of slices; -* built-in **USB/serial** host controller, supporting **multiple simultaneous printers** each one with a spool queue; -* **OctoPrint integration** (send to printer); -* built-in **projector and host for DLP printers**; -* tool for **cutting meshes** in multiple solid parts with visual preview (also in batch using a grid); -* tool for **extruding 2.5D TIN meshes**. +Key features are: -### What language is it written in? +* **Multi-platform** (Linux/Mac/Win) and packaged as standalone-app with no dependencies required +* Complete **command-line interface** to use it without GUI +* Multi-material **(multiple extruders)** object printing +* Multiple G-code flavors supported (RepRap, Makerbot, Mach3, Machinekit, etc.) +* Ability to plate **multiple objects having distinct print settings** +* **Multithread** processing +* **STL auto-repair** (tolerance for broken models) +* Wide automated unit testing -The core parts of Slic3r are written in C++11, with multithreading. The graphical interface is in the process of being ported to C++14. +Other major features are: -### How to install? +* Combine infill every 'n' perimeters layer & varying density to speed up printing +* **3D preview** (including multi-material files) +* **Multiple layer heights** in a single print +* **Spiral vase** mode for bumpless vases +* Fine adjustment of speed, acceleration, and extrusion width +* Several infill patterns including honeycomb, spirals, Hilbert curves, gyroid +* Support material, raft, brim, skirt +* **Standby temperature** and automatic wiping for multi-extruder printing +* [Customizable **G-code macros**](https://github.com/prusa3d/PrusaSlicer/wiki/Slic3r-Prusa-Edition-Macro-Language) and output filename with variable placeholders +* Support for **post-processing scripts** +* **Cooling logic** controlling fan speed and dynamic print speed -You can download a precompiled package from [slic3r.org](http://slic3r.org/) (releases) or from [dl.slicr3r.org](http://dl.slic3r.org/dev/) (automated builds). +[Command-Line Interface](https://github.com/prusa3d/PrusaSlicer/wiki/Command-Line-Interface) wiki page. -If you want to compile the source yourself follow the instructions on one of these wiki pages: -* [Linux](https://github.com/slic3r/Slic3r/wiki/Running-Slic3r-from-git-on-GNU-Linux) -* [Windows](https://github.com/slic3r/Slic3r/wiki/Running-Slic3r-from-git-on-Windows) -* [Mac OSX](https://github.com/slic3r/Slic3r/wiki/Running-Slic3r-from-git-on-OS-X) +## Development -### Can I help? +### What language is it written in? -Sure, but please read the -[CONTRIBUTING](https://github.com/slic3r/Slic3r/blob/master/.github/CONTRIBUTING.md) -document first! +Almost everything is written in C++. -### Directory structure +The slicing core is the `libslic3r` library, which can be built and used in a standalone way. +The command-line interface is a thin wrapper over `libslic3r`. +You can download a precompiled package from the release page - it will run without the need for any dependency. -* `package/`: the scripts used for packaging the executables -* `src/`: the C++ source of the `slic3r` executable and the CMake definition file for compiling it -* `src/slic3r/GUI`: The C++ GUI. -* `tests`: Test suite for Slic3r. Implemented with [Catch2](https://github.com/catchorg/Catch2) -* `t/`: the really old test suite (deprecated) -* `utils/`: various useful scripts -* `src/libslic3r/`: C++ sources for libslic3r -* `xs/xsp/`: bindings for calling libslic3r from Perl (XS) (deprecated) +### How to compile -## Licensing and attribution +If you want to compile the source yourself, follow the instructions on one of +these documentation pages: +* [Linux](doc/How%20to%20build%20-%20Linux%20et%20al.md) +* [macOS](doc/How%20to%20build%20-%20Mac%20OS.md) +* [Windows](doc/How%20to%20build%20-%20Windows.md) -Slic3r is licensed under the _GNU Affero General Public License, version 3_. +You can also look at the workflow YAML-files for [git actions](https://github.com/supermerill/Slic3r/tree/master/.github/workflows), as they describe how to build from source from a "virgin" dev computer. -PrusaSlicer is licensed under the _GNU Affero General Public License, version 3_. -PrusaSlicer is owned by Prusa Research. -PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci. +### Can I help? -The _GNU Affero General Public License, version 3_ ensures that if you **use** any part of this software in any way (even behind a web server), your software must be released under the same license. +Sure! You can do the following to find things that are available to help with: +* Add an issue to the GitHub tracker **if it isn't already present**. -### Acknowledgements +Before sending patches and pull requests contact me (preferably through opening a GitHub issue or commenting on an existing, related, issue) to discuss your proposed +changes. This way we can ensure that nobody wastes their time and no conflicts arise in development. -The main author of Slic3r is Alessandro Ranellucci (@alranel, *Sound* in IRC, [@alranel](http://twitter.com/alranel) on Twitter), who started the project in 2011. +## License and attribution -Joseph Lenox (@lordofhyphens, *LoH* in IRC, [@LenoxPlay](http://twitter.com/LenoxPlay) on Twitter) is the current co-maintainer. +SuperSlicer is licensed under the _GNU Affero General Public License, version 3_. +SuperSlicer is based on PrusaSlicer by PrusaResearch. -Contributions by Henrik Brix Andersen, Vojtech Bubnik, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Y. Sapir, Mike Sheldrake, Kliment Yanev and numerous others. Original manual by Gary Hodgson. Slic3r logo designed by Corey Daniels, <a href="http://www.famfamfam.com/lab/icons/silk/">Silk Icon Set</a> designed by Mark James, stl and gcode file icons designed by Akira Yasuda. +PrusaSlicer is licensed under the _GNU Affero General Public License, version 3_. +PrusaSlicer is owned by Prusa Research. +PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci. -### How can I invoke Slic3r using the command line? +Slic3r is licensed under the _GNU Affero General Public License, version 3_. +Slic3r was created by Alessandro Ranellucci with the help of many other contributors. -The command line is documented in the relevant [manual page](https://manual.slic3r.org/advanced/command-line). +The _GNU Affero General Public License, version 3_ ensures that if you **use** any part of this software in any way (even behind a web server), your software must be released under the same license. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..48fbcdc0a --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,16 @@ +# Security Policy + +## Supported Versions + +| Version | Supported | +| -------- | ------------------ | +| 2.3.57 | :white_check_mark: | +| 2.3.56 | :white_check_mark: | +| < 2.3.56 | :x: | + +last update 2021/10/7 + +## Reporting a Vulnerability + +If the vulnerability isn't dangerous, open an issue. +If it's dangerous, you can contact me on discord (link should be available [here](https://github.com/supermerill/SuperSlicer/issues/611), at the end) diff --git a/create_release.py b/create_release.py index 4e648381b..df1cd373a 100644 --- a/create_release.py +++ b/create_release.py @@ -14,8 +14,8 @@ from datetime import date import tarfile import subprocess -repo = "slic3r/slic3r" -program_name = "Slic3r" +repo = "supermerill/SuperSlicer" +program_name = "SuperSlicer" path_7zip = r"C:\Program Files\7-Zip\7z.exe" github_auth_token = "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" diff --git a/doc/How to build - Linux et al.md b/doc/How to build - Linux et al.md index 97e3e5e3d..5c81bbd5f 100644 --- a/doc/How to build - Linux et al.md +++ b/doc/How to build - Linux et al.md @@ -1,7 +1,8 @@ # Building Slic3r on UNIX/Linux -Slic3r uses the CMake build system and requires several dependencies. + +SuperSlicer uses the CMake build system and requires several dependencies. The dependencies can be listed in `deps/deps-linux.cmake` and `deps/deps-unix-common.cmake`, although they don't necessarily need to be as recent as the versions listed - generally versions available on conservative Linux distros such as Debian stable or CentOS should suffice. @@ -21,7 +22,7 @@ Additional CMake flags may be applicable as explained below. You have to gitclone the repository ``` -git clone https://github.com/slic3r/Slic3r.git +git clone https://github.com/supermerill/SuperSlicer.git ``` and then you have to clone the profiles submodules @@ -33,6 +34,12 @@ git submodule update ## How to build, the easy way +After cloning, execute `sudo ./BuildLinux.sh -u` +And then `./BuildLinux.sh -dsi` +The compiled executable should be in the build/package folder + +## How to build, the guided way + You can follow the [script](https://github.com/supermerill/Slic3r/blob/master/.github/workflows/ccpp_ubuntu.yml) the build server use to create the ubuntu release. You have to execute each command at the right of the 'run: ' tags, in the directory that is at the right of the previous 'working-directory:' tag. diff --git a/doc/How to build - Mac OS.md b/doc/How to build - Mac OS.md index 312083e27..25e14cf4b 100644 --- a/doc/How to build - Mac OS.md +++ b/doc/How to build - Mac OS.md @@ -15,7 +15,7 @@ XCode is available through Apple's App Store, the other three tools are availabl You have to gitclone the repository ``` -git clone https://github.com/slic3r/Slic3r.git +git clone https://github.com/supermerill/SuperSlicer.git ``` and then you have to clone the profiles submodules @@ -24,6 +24,12 @@ and then you have to clone the profiles submodules cd resources/profiles git submodule update ``` + +## How to build, the easy way + +After cloning, execute `./BuildMacOS.sh -i` +The executable & dmg should be somewhere in the build directory. + ### How to build You can follow the [script](https://github.com/supermerill/Slic3r/blob/master/.github/workflows/ccpp_mac.yml) the build server use to create the ubuntu release. diff --git a/doc/How to build - Windows.md b/doc/How to build - Windows.md index cc750108a..a6fad03a1 100644 --- a/doc/How to build - Windows.md +++ b/doc/How to build - Windows.md @@ -10,7 +10,7 @@ Building with [Visual Studio 2017 Community Edition](https://www.visualstudio.co You have to gitclone the repository ``` -git clone https://github.com/slic3r/Slic3r.git +git clone https://github.com/supermerill/SuperSlicer.git ``` and then you have to clone the profiles submodules diff --git a/resources/ui_layout/colors.ini b/resources/ui_layout/colors.ini index 74a6323ab..ea2102ace 100644 --- a/resources/ui_layout/colors.ini +++ b/resources/ui_layout/colors.ini @@ -17,12 +17,13 @@ Wipe tower = B3E3AB Mill = B3B3B3 Custom = 28CC94 Mixed = 000000 -Gui_color_very_dark = ada230 -Gui_color_dark = cabe39 -Gui_color = eddc21 -Gui_color_light = ffee38 -Gui_color_very_light = fef48b +Gui_color_very_dark = 0047C7 +Gui_color_dark = 2172eb +Gui_color = 428dfd +Gui_color_light = 8bb9fe +Gui_color_very_light = 428cff splash_screen_editor = cars.jpg splash_screen_gcodeviewer = prusa-gcodepreview.jpg Gui_plater = 3C3C3C Gui_plater_grid = D0D0D0 + diff --git a/src/slic3r/GUI/AboutDialog.cpp b/src/slic3r/GUI/AboutDialog.cpp index b42483a03..e18652b90 100644 --- a/src/slic3r/GUI/AboutDialog.cpp +++ b/src/slic3r/GUI/AboutDialog.cpp @@ -269,7 +269,7 @@ AboutDialog::AboutDialog() // TRN "Slic3r _is licensed under the_ License" const std::string is_lecensed_str = _utf8(L("is licensed under the")); const std::string license_str = _utf8(L("GNU Affero General Public License, version 3")); - const std::string based_on_str = _utf8(L("Slic3r contains sizable contributions from Prusa Research. Original work by Alessandro Ranellucci and the RepRap community.")); + const std::string based_on_str = _utf8(L("SuperSlicer is a skinned version of Slic3r, based on PrusaSlicer by Prusa and the original Slic3r by Alessandro Ranellucci & the RepRap community.")); const std::string contributors_str = _utf8(L("Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik, Durand RĂ©mi and numerous others.")); const std::string manual_str = _utf8(L("Manual by Gary Hodgson. Inspired by the RepRap community.")); const std::string icon_str = _utf8(L("Slic3r logo designed by Corey Daniels.")); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index a6a72e3c9..63a062b5e 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -261,7 +261,7 @@ private: version = _L("Version") + " " + std::string(SLIC3R_VERSION_FULL); // credits infornation - credits = _L("Slic3r contains sizable contributions from Prusa Research. Original work by Alessandro Ranellucci and the RepRap community.") + "\n\n" + + credits = _L("SuperSlicer is a skinned version of Slic3r, based on PrusaSlicer by Prusa and the original Slic3r by Alessandro Ranellucci & the RepRap community.") + "\n\n" + title + " " + _L("is licensed under the") + " " + _L("GNU Affero General Public License, version 3") + "\n\n" + _L("Contributions by Vojtech Bubnik, Enrico Turri, Durand Remi, Oleksandra Iushchenko, Tamas Meszaros, Lukas Matena, Vojtech Kral, David Kocik and numerous others."); diff --git a/version.inc b/version.inc index 59ddfbb39..6d2757ead 100644 --- a/version.inc +++ b/version.inc @@ -2,16 +2,16 @@ # (the version numbers are generated by the build script from the git current label) # name of the slicer -set(SLIC3R_APP_NAME "Slic3r") +set(SLIC3R_APP_NAME "SuperSlicer") # Key fo the slicer, must only contains ascii chars and no spaces (be valid in all filesystems) -set(SLIC3R_APP_KEY "Slic3r") +set(SLIC3R_APP_KEY "SuperSlicer") # exe name of the slicer, should be lowercase and valid in all os -set(SLIC3R_APP_CMD "Slic3r") +set(SLIC3R_APP_CMD "superslicer") # versions -set(SLIC3R_VERSION "2.4") -set(SLIC3R_VERSION_FULL "2.4.00.0") +set(SLIC3R_VERSION "2.3.57") +set(SLIC3R_VERSION_FULL "2.3.57.4") set(SLIC3R_BUILD_ID "${SLIC3R_APP_KEY}_${SLIC3R_VERSION_FULL}+UNKNOWN") -set(SLIC3R_RC_VERSION "2,4,00,0") +set(SLIC3R_RC_VERSION "2,3,57,4") set(SLIC3R_RC_VERSION_DOTS "${SLIC3R_VERSION_FULL}") # Same as the slicer name but for gcodeviewer @@ -20,8 +20,8 @@ set(GCODEVIEWER_APP_KEY "${SLIC3R_APP_KEY}-gcodeviewer") set(GCODEVIEWER_APP_CMD "${SLIC3R_APP_CMD}-gcodeviewer") # string to be added after the SLIC3R_APP_NAME on some places -set(SLIC3R_BASED_ON "") +set(SLIC3R_BASED_ON "a flavored version of Slic3r") # to get he github repo -set(SLIC3R_GITHUB "slic3r/Slic3r") +set(SLIC3R_GITHUB "supermerill/SuperSlicer") # download url -set(SLIC3R_DOWNLOAD "https://slic3r.org/download") +set(SLIC3R_DOWNLOAD "https://github.com/supermerill/SuperSlicer/releases") |