Merge branch 'fork_release' into temp_master

This commit is contained in:
supermerill 2018-07-26 13:05:14 +02:00
commit 9c051e0e9d
16 changed files with 46 additions and 40 deletions

View File

@ -1,10 +1,10 @@
_Q: Oh cool, a new RepRap slicer?_
_Q: Oh cool, a new fork of slic3r?_
A: Yes.
Slic3r
======
Prebuilt Windows, OSX and Linux binaries are available through the [git releases page](https://github.com/prusa3d/Slic3r/releases).
Prebuilt Windows 32b is available through the [git releases page](https://github.com/supermerill/Slic3r/releases).
<img width=256 src=https://cloud.githubusercontent.com/assets/31754/22719818/09998c92-ed6d-11e6-9fa0-09de638f3a36.png />
@ -18,14 +18,20 @@ See the [project homepage](http://slic3r.org/) at slic3r.org and the
### What language is it written in?
The core geometric algorithms and data structures are written in C++,
and Perl is used for high-level flow abstraction, GUI and testing.
If you're wondering why Perl, see https://xkcd.com/224/
Almost everything are written in C++,
Perl is used a bit but the prusa fork is getting rid of it (unless for scripting, maybe).
The C++ API is public and its use in other projects is encouraged.
The goal is to make Slic3r fully modular so that any part of its logic
can be used separately.
### What are this fork main features/differences?
* **Ironing** top surface & many new settings to fine-tune the top surface quality.
* A denser infill option for 1-X layers before the top solid layers to better support them.
* Better overhangs (add perimeters if needed, slice them in opposite direction each layer).
* Better Thin walls (anchored inside the print, no more random bits at the ends).
### What are Slic3r's main features?
Key features are:
@ -41,12 +47,12 @@ Key features are:
Other major features are:
* combine infill every 'n' perimeters layer to speed up printing
* 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-grained configuration of speed, acceleration, extrusion width
* several infill patterns including honeycomb, spirals, Hilbert curves
* 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** and output filename with variable placeholders
@ -55,39 +61,34 @@ Other major features are:
### How to install?
You can download a precompiled package from [slic3r.org](http://slic3r.org/);
You can download a precompiled package from the release page.
it will run without the need for any dependency.
If you want to compile the source yourself follow the instructions on one of these wiki pages:
* [Linux](https://github.com/alexrj/Slic3r/wiki/Running-Slic3r-from-git-on-GNU-Linux)
* [Windows](https://github.com/prusa3d/Slic3r/wiki/How-to-compile-Slic3r-Prusa-Edition-on-MS-Windows)
* [Mac OSX](https://github.com/alexrj/Slic3r/wiki/Running-Slic3r-from-git-on-OS-X)
* [Linux](https://github.com/supermerill/Slic3r/tree/master/doc/How%20to%20build%20-%20UNIX.md)
* [Windows](https://github.com/supermerill/Slic3r/tree/master/doc/How%20to%20build%20-%20Windows.md)
* [Mac OSX](https://github.com/supermerill/Slic3r/tree/master/doc/How_to_build_Slic3r.txt)
### Can I help?
Sure! You can do the following to find things that are available to help with:
* [Pull Request Milestone](https://github.com/alexrj/Slic3r/milestone/31)
* Please comment in the related github issue that you are working on it so that other people know.
* Items in the [TODO](https://github.com/alexrj/Slic3r/wiki/TODO) wiki page.
* Please comment in the related github issue that you are working on it so that other people know.
* Drop me a line at aar@cpan.org.
* You can also find me (rarely) in #reprap and in #slic3r on [FreeNode](https://webchat.freenode.net) with the nickname _Sound_. Another contributor, _LoH_, is also in both channels.
* Add an [issue](https://github.com/alexrj/Slic3r/issues) to the github tracker if it isn't already present.
* Add an issue to the github tracker if it isn't already present.
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'll ensure nobody wastes their time and no conflicts arise
in development.
changes: this way we'll ensure nobody wastes their time and no conflicts arise in development.
### What's Slic3r license?
Slic3r is licensed under the _GNU Affero General Public License, version 3_.
The author is Alessandro Ranellucci.
The first author is Alessandro Ranellucci, and many contributors
Then the he Prusa team
Then Durand remi for this fork
The [Silk icon set](http://www.famfamfam.com/lab/icons/silk/) used in Slic3r is
The [Silk icon set](http://www.famfamfam.com/lab/icons/silk/) used (and modified) in Slic3r is
licensed under the _Creative Commons Attribution 3.0 License_.
The author of the Silk icon set is Mark James.
### How can I invoke slic3r.pl using the command line?
### How can I invoke slic3r.pl using the command line? (not up-to-date yet, use the --help command instead)
Usage: slic3r.pl [ OPTIONS ] [ file.stl ] [ file2.stl ] ...
@ -296,6 +297,7 @@ The author of the Silk icon set is Mark James.
--min-fan-speed Minimum fan speed (default: 35%)
--max-fan-speed Maximum fan speed (default: 100%)
--bridge-fan-speed Fan speed to use when bridging (default: 100%)
--top-fan-speed Fan speed to use when printing top layer (default: 100%)
--fan-below-layer-time Enable fan if layer print time is below this approximate number
of seconds (default: 60)
--slowdown-below-layer-time Slow down if layer print time is below this approximate number
@ -358,6 +360,7 @@ The author of the Silk icon set is Mark James.
Set a different extrusion width for support material
--infill-overlap Overlap between infill and perimeters (default: 15%)
--bridge-flow-ratio Multiplier for extrusion when bridging (> 0, default: 1)
--over-bridge-flow-ratio Multiplier for extrusion when printing the layer above a bride (> 0, default: 1.15)
Multiple extruder options:
--extruder-offset Offset of each extruder, if firmware doesn't handle the displacement

View File

@ -28,7 +28,7 @@ BEGIN {
use Config;
use Moo;
my $have_threads = $Config{useithreads} && eval "use threads; use threads::shared; use Thread::Queue; 1";
die "Slic3r Prusa Edition requires working Perl threads.\n" if ! $have_threads;
die "Slic3r++ requires working Perl threads.\n" if ! $have_threads;
die "threads.pm >= 1.96 is required, please update\n" if $threads::VERSION < 1.96;
die "Perl threading is broken with this Moo version: " . $Moo::VERSION . "\n" if $Moo::VERSION == 1.003000;
$debug = 1 if (defined($ENV{'SLIC3R_DEBUGOUT'}) && $ENV{'SLIC3R_DEBUGOUT'} == 1);

View File

@ -74,7 +74,7 @@ sub OnInit {
my ($self) = @_;
$self->SetAppName('Slic3rPE');
$self->SetAppDisplayName('Slic3r Prusa Edition');
$self->SetAppDisplayName('Slic3r++');
Slic3r::debugf "wxWidgets version %s, Wx version %s\n", &Wx::wxVERSION_STRING, $Wx::VERSION;
# Set the Slic3r data directory at the Slic3r XS module.

View File

@ -358,8 +358,8 @@ sub _init_menubar {
$self->_append_menu_item($helpMenu, L("Show &Configuration Folder"), L('Show user configuration folder (datadir)'), sub {
Slic3r::GUI::desktop_open_datadir_folder();
});
$self->_append_menu_item($helpMenu, L("Report an Issue"), L('Report an issue on the Slic3r Prusa Edition'), sub {
Wx::LaunchDefaultBrowser('http://github.com/prusa3d/slic3r/issues/new');
$self->_append_menu_item($helpMenu, L("Report an Issue"), L('Report an issue on the Slic3r++ github'), sub {
Wx::LaunchDefaultBrowser('http://github.com/supermerill/slic3r/issues/new');
});
$self->_append_menu_item($helpMenu, L("&About Slic3r"), L('Show about dialog'), sub {
Slic3r::GUI::about;

View File

@ -10,7 +10,7 @@ use base 'Wx::Dialog';
sub new {
my ($class, %params) = @_;
my $self = $class->SUPER::new($params{parent}, -1, 'Slic3r Prusa Edition - System Information', wxDefaultPosition, [600, 340],
my $self = $class->SUPER::new($params{parent}, -1, 'Slic3r++ - System Information', wxDefaultPosition, [600, 340],
wxDEFAULT_DIALOG_STYLE | wxMAXIMIZE_BOX | wxRESIZE_BORDER);
$self->{text_info} = $params{text_info};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -45,7 +45,7 @@ public:
// wipe_area -- space available for one toolchange in mm
WipeTowerPrusaMM(float x, float y, float width, float rotation_angle, float cooling_tube_retraction,
float cooling_tube_length, float parking_pos_retraction, float extra_loading_move, float bridging,
const std::vector<std::vector<float>>& wiping_matrix, unsigned int initial_tool) :
const std::vector<std::vector<float>>& wiping_matrix, unsigned int initial_tool, float first_layer_width) :
m_wipe_tower_pos(x, y),
m_wipe_tower_width(width),
m_wipe_tower_rotation_angle(rotation_angle),
@ -58,7 +58,8 @@ public:
m_extra_loading_move(extra_loading_move),
m_bridging(bridging),
m_current_tool(initial_tool),
wipe_volumes(wiping_matrix)
wipe_volumes(wiping_matrix),
m_brim_width(first_layer_width)
{}
virtual ~WipeTowerPrusaMM() {}

View File

@ -1111,7 +1111,7 @@ void Print::_make_wipe_tower()
float(this->config.wipe_tower_rotation_angle.value), float(this->config.cooling_tube_retraction.value),
float(this->config.cooling_tube_length.value), float(this->config.parking_pos_retraction.value),
float(this->config.extra_loading_move.value), float(this->config.wipe_tower_bridging), wipe_volumes,
float(this->config.first_layer_extrusion_width));
m_tool_ordering.first_extruder(), float(this->config.first_layer_extrusion_width));
//wipe_tower.set_retract();
//wipe_tower.set_zhop();

View File

@ -13,7 +13,7 @@
#include <vector>
#include <boost/thread.hpp>
#define SLIC3R_FORK_NAME "Slic3r Prusa Edition"
#define SLIC3R_FORK_NAME "Slic3r++"
#define SLIC3R_VERSION "1.41.0-alpha2"
#define SLIC3R_BUILD "UNKNOWN"

View File

@ -53,7 +53,7 @@ AboutDialog::AboutDialog()
// title
{
wxStaticText* title = new wxStaticText(this, wxID_ANY, "Slic3r Prusa Edition", wxDefaultPosition, wxDefaultSize);
wxStaticText* title = new wxStaticText(this, wxID_ANY, "Slic3r++", wxDefaultPosition, wxDefaultSize);
wxFont title_font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
title_font.SetWeight(wxFONTWEIGHT_BOLD);
title_font.SetFamily(wxFONTFAMILY_ROMAN);

View File

@ -23,6 +23,7 @@
namespace Slic3r {
namespace GUI {
#define MAIN_VENDOR "None"
// Printer model picker GUI control
@ -96,7 +97,7 @@ PrinterPicker::PrinterPicker(wxWindow *parent, const VendorProfile &vendor, cons
auto *cbox = new Checkbox(variants_panel, label, model_id, variant.name);
const size_t idx = cboxes.size();
cboxes.push_back(cbox);
bool enabled = appconfig_vendors.get_variant("PrusaResearch", model_id, variant.name);
bool enabled = appconfig_vendors.get_variant(MAIN_VENDOR, model_id, variant.name);
variants_checked += enabled;
cbox->SetValue(enabled);
variants_sizer->Add(cbox, 0, wxBOTTOM, 3);
@ -232,7 +233,7 @@ PageWelcome::PageWelcome(ConfigWizard *parent, bool check_first_variant) :
if (wizard_p()->run_reason == ConfigWizard::RR_DATA_EMPTY) {
wxString::Format(_(L("Run %s")), ConfigWizard::name());
append_text(wxString::Format(
_(L("Hello, welcome to Slic3r Prusa Edition! This %s helps you with the initial configuration; just a few settings and you will be ready to print.")),
_(L("Hello, welcome to Slic3r++ (fork of Slic3r Prusa Edition)! This %s helps you with the initial configuration; just a few settings and you will be ready to print.")),
ConfigWizard::name())
);
} else {
@ -241,7 +242,8 @@ PageWelcome::PageWelcome(ConfigWizard *parent, bool check_first_variant) :
}
const auto &vendors = wizard_p()->vendors;
const auto vendor_prusa = vendors.find("PrusaResearch");
printf("vendors count : %d", vendors.size());
const auto vendor_prusa = vendors.find(MAIN_VENDOR);
if (vendor_prusa != vendors.cend()) {
AppConfig &appconfig_vendors = this->wizard_p()->appconfig_vendors;
@ -330,7 +332,7 @@ PageVendors::PageVendors(ConfigWizard *parent) :
for (const auto vendor_pair : wizard_p()->vendors) {
const auto &vendor = vendor_pair.second;
if (vendor.id == "PrusaResearch") { continue; }
if (vendor.id == MAIN_VENDOR) { continue; }
auto *picker = new PrinterPicker(this, vendor, appconfig_vendors);
picker->Hide();
@ -633,8 +635,8 @@ static const std::unordered_map<std::string, std::pair<std::string, std::string>
void ConfigWizard::priv::load_vendors()
{
const auto vendor_dir = fs::path(Slic3r::data_dir()) / "vendor";
const auto rsrc_vendor_dir = fs::path(resources_dir()) / "profiles";
const fs::path vendor_dir = fs::path(Slic3r::data_dir()) / "vendor";
const fs::path rsrc_vendor_dir = fs::path(resources_dir()) / "profiles";
// Load vendors from the "vendors" directory in datadir
for (fs::directory_iterator it(vendor_dir); it != fs::directory_iterator(); ++it) {
@ -680,7 +682,7 @@ void ConfigWizard::priv::load_vendors()
const auto &model = needle->second.first;
const auto &variant = needle->second.second;
appconfig_vendors.set_variant("PrusaResearch", model, variant, true);
appconfig_vendors.set_variant(MAIN_VENDOR, model, variant, true);
}
}
}