slic3r / Slic3r

Open Source toolpath generator for 3D printers
https://slic3r.org/
GNU Affero General Public License v3.0
3.32k stars 1.29k forks source link

[Feature Request] Multi-color support for SVG slicing (-> please help me do it myself) #4290

Closed N4rki closed 6 years ago

N4rki commented 6 years ago

Version

1.2.9-1272-gdc9d7ed7

Operating system type + version

Windows 10 Pro

Description

What works so far:

My issues

These are somewhat separate but I didn't want to flood this forum with too many posts. Since they are all just ways to get to the same goal , finding a solution for one of them would effectively make the others void.

  1. [solved] First off, when I change the text of the SVG header in SLAPrint.cpp, compile from source and do slic3r.pl torus.stl --export-svg it doesn't actually change the header of the produced svg file to what I specified. In the source file I added "Test1 SLAPrint - n4rki" in the first line of the header but it somehow doesn't show up in the svg file. The header text is also found in SVG.cpp (twice), so just to be sure I changed it there too. But no difference. Here's my code: SLAPrint + SVG code.zip Why are these changes not showing up in the svg files after compiling? --> found solution: I falsely assumed that perl only encompasses the GUI. I therefore didn't look thoroughly enough and missed print.pm, which draws the SVG in normal mode. Only when compiling and running CLI only mode without perl, this happens in SLAPrint.cpp. Must be due to the ongoing porting process.

  2. [solved] Even if the above worked, it would still be a rather inefficient way to program. Since I don't need to work on the GUI for now, I thought working with the CLI only Version might be easier. I managed to compile it with cmake, but it doesn't seem to work:

    • slic3r.exe donut.stlreturns "error: command not supported"
    • slic3r.exe donut.stl --export-svg crashes after a while and returns:
      terminate called after throwing an instance of 'std::bad_alloc'
      what():  std::bad_alloc

      The instructions on here describe that it works in a limited way, but there are no details on what should and shouldn't work. --> found solution: In CLI only mode there seems to be no default config. So one must at least provide a layer height. slic3r.exe donut.stl --export-svg --layer-height 0.2 worked just fine.

  3. Building with Visual Studio 2013: The 2013 Version is hard to come by and the download for the perl module patches is offline. Is this way still recommended? Anybody here who uses it or has experience with later VS Versions?

  4. How do YOU develop for slic3r? Is there a good way to do it on Windows and be able to debug etc. or should I just stop messing around, use Linux and get aquainted with Emacs + GDB?

As you can see I am a rookie at this - sorry for asking such basic questions! I'd really like to get started with this and I'm facing major roadblocks. Any help is much appreciated!

lordofhyphens commented 6 years ago

I build on Windows with MinGW (using a customized Strawberry Perl available on the wiki) . You'll have to be savvy with GDB though.

My primary build system (when I am not debugging windows specific issues) is Debian Linux. I suggest using perlbrew on a development system, but Slic3r works fine with system Perl. Just install local-lib from the packages.

My preferred editor on both is (g)Vim :)

lordofhyphens commented 6 years ago

Add -g to your CXXFLAGS environment variable (or edit build.PL or the cmake directly).

N4rki commented 6 years ago

@lordofhyphens Thanks, that helped a lot! And adding -g worked wonders for gdb :)

I'm happy to debug with gdb, but having some Vim integration for gdb with in-text highlighting would be a huge help. Do you use such a plugin when debugging on windows? I'm asking because I can't get ConqueGdb to work properly. The Conque Shell and gdb runs normally but without going through and highlighting the actual code in Vim. Google gave me nothing that worked. But I guess I'll just go with gdbgui then.

Concering issue 1, I explored this further. So basically I type something into the SVG header text in SLAPrint.cpp (SLAPrint::write_svg) just to see if my changes are implemented into the programm through compiling. Should be a no-brainer, since it's kind of the definition of compiling from source, right? But yet when I compile with perl build.pl and then process an example with perl slic3r.pl torus.stl --export-svg -layer-height 0.2 the header in the generated svg file is in its original state, not what I changed it to. Weirdly, when I then build the CLI only version from the exact same source code with cmake and MinGW in a separate folder, then run slic3r.exe torus.stl --export-svg -layer-height 0.2, the generated svg file does have these changes in its header. Do you have any ideas what's going on here?

[edit] Do you use perl -d slic3r.pl to debug the whole application or are there better ways?

lordofhyphens commented 6 years ago

I try not to debug on Windows :)

Usually I don't need to go into detail on the perl side so my debug methods have been loading core dumps after the fact (as I am usually looking at crashes), or I am sticking diagnostic print statements into the source itself.

So I will try to have a better answer for you later.

lordofhyphens commented 6 years ago

Conque indicates that it needs Python support in gVim to work. That also means that the correct bitness (32 vs 64bit). :version will tell you what it is and what options it is linked with.

I don't know if you've checked that support yet with :echo has("python") and related things yet, but it's a good idea to do so. https://stackoverflow.com/questions/4718122/how-to-enable-python-support-in-gvim-on-windows

N4rki commented 6 years ago

Conque indicates that it needs Python support in gVim to work. That also means that the correct bitness (32 vs 64bit). :version will tell you what it is and what options it is linked with.

I don't know if you've checked that support yet with :echo has("python") and related things yet, but it's a good idea to do so. https://stackoverflow.com/questions/4718122/how-to-enable-python-support-in-gvim-on-windows

Yes I tried those things. My Vim had python. I went pretty deep down the rabbit hole with some of it. I though the fact that MinGW needs to have GDB might be the cause. Because I do have MinGW (from Slic3r Perl) and I do have GDB. I just wasn't so sure if my MinGW had gdb (and if that might matter). The problem is that when getting MinGW through Slic3r Perl mingw-get.exe install gdb gave me a lock error although I ran the CLI as admin. So I deleted Slic3r Perl to start with a fresh plate when it comes to MinGW. Installed that the normal way, added gdb to it but got the exact same results.

I'm trying to get gdbgui to work now which is a mess on windows too. I'm very close to convincing my boss to use a linux virtual machine which he was open to as a last resort but it would still be frustrating after having come so close to get a workflow going on windows. Anyway thanks for the help, I'm sure I'll find a way.

If in the meantime, if anybody has any pointers for me on how to implement my feature that'd be cool, too! I'm not quite yet sure where exactly where I would take the color values of different objects in a .3mf from. I will update this with my findings.

lordofhyphens commented 6 years ago

For looking at 3mf, look over the existing importer first. You may need to extend the existing code for that.

Ok, last sanity check: your gvim and python are both either 64 bit or 32bit right ?

The default mswindow build of gvim is 32bit.

N4rki commented 6 years ago

Yes, I matched the bitness of gvim and python.

I did find the solution to get gdbgui working though: I had not only install normal MinGW but also add all packages in the installation process. Don't know which one made the difference but apparently not everything thats needed is included by default. Didn't help the ConqueGdb Vim plugin but I'm happy with switching to gdbgui.

Finally I can start working :)

lordofhyphens commented 6 years ago

So the one wrinkle you may come across is anything that throws an exception; you need to make sure that SEH exceptions are being used. SJLJ causes hangs when exceptions percolate up to the Perl side.

I think the default exception model of gcc7 for mingw is SEH, but you should check your download to be sure.

It is the reason why I had rolled Slic3r perl (it is strawberry perl 5.24 with the gcc swapped out).

N4rki commented 6 years ago

Thanks for mentioning that. This was indeed a problem, as I still need to be able to compile slic3r. I then tried it with this MinGW install (tried x86_64-win32-seh and x86_64-posix-seh. But had no luck compiling the CLI only version of slic3r. In case you're interested:

Click here for the CLI output ``` C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\build>mingw32-make.exe Scanning dependencies of target clipper [ 1%] Building CXX object CMakeFiles/clipper.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/clipper.cpp.obj [ 2%] Linking CXX static library libclipper.a [ 2%] Built target clipper Scanning dependencies of target libslic3r [ 3%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/BoundingBox.cpp.obj [ 4%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/BridgeDetector.cpp.obj [ 6%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/ClipperUtils.cpp.obj [ 7%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Config.cpp.obj C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\Config.cpp: In member function 'void Slic3r::ConfigBase::save(const string&) const': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\Config.cpp:419:56: warning: unknown conversion type character 'F' in format [-Wformat=] strftime(buf, sizeof buf, "%F %T", gmtime(&now)); ^ C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\Config.cpp:419:56: warning: unknown conversion type character 'T' in format [-Wformat=] [ 8%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/ExPolygon.cpp.obj [ 9%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/ExPolygonCollection.cpp.obj [ 10%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Extruder.cpp.obj [ 12%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/ExtrusionEntity.cpp.obj [ 13%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/ExtrusionEntityCollection.cpp.obj [ 14%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Fill/Fill.cpp.obj [ 15%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Fill/Fill3DHoneycomb.cpp.obj [ 17%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Fill/FillConcentric.cpp.obj [ 18%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Fill/FillHoneycomb.cpp.obj [ 19%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Fill/FillPlanePath.cpp.obj C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\Fill\FillPlanePath.cpp: In function 'Slic3r::Point Slic3r::hilbert_n_to_xy(size_t)': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\Fill\FillPlanePath.cpp:142:9: warning: variable 'dirstate' set but not used [-Wunused-but-set-variable] int dirstate = (ndigits & 1) ? 0 : 4; ^~~~~~~~ [ 20%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Fill/FillRectilinear.cpp.obj [ 21%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Flow.cpp.obj [ 23%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/GCode.cpp.obj [ 24%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/GCode/CoolingBuffer.cpp.obj C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\GCode\CoolingBuffer.cpp: In member function 'std::__cxx11::string Slic3r::CoolingBuffer::flush()': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\GCode\CoolingBuffer.cpp:126:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (this->_layer_id < gg.config.disable_fan_first_layers) ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\GCode\CoolingBuffer.cpp:132:82: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (!gg.config.cooling || gg.config.bridge_fan_speed == 0 || this->_layer_id < gg.config.disable_fan_first_layers) { ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 25%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/GCode/SpiralVase.cpp.obj [ 26%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/GCodeReader.cpp.obj [ 28%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/GCodeSender.cpp.obj [ 29%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/GCodeTimeEstimator.cpp.obj [ 30%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/GCodeWriter.cpp.obj [ 31%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Geometry.cpp.obj [ 32%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/IO.cpp.obj [ 34%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/IO/AMF.cpp.obj C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\IO\AMF.cpp: In static member function 'static bool Slic3r::IO::AMF::write(Slic3r::Model&, std::__cxx11::string)': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\IO\AMF.cpp:546:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (size_t i = 0; i < stl.stats.shared_vertices; ++i) ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 35%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/IO/TMF.cpp.obj [ 36%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Layer.cpp.obj [ 37%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/LayerRegion.cpp.obj [ 39%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/LayerRegionFill.cpp.obj [ 40%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/LayerHeightSpline.cpp.obj [ 41%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Line.cpp.obj [ 42%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Model.cpp.obj [ 43%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/MotionPlanner.cpp.obj [ 45%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/MultiPoint.cpp.obj [ 46%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/PerimeterGenerator.cpp.obj [ 47%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/PlaceholderParser.cpp.obj [ 48%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Point.cpp.obj [ 50%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Polygon.cpp.obj [ 51%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Polyline.cpp.obj [ 52%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/PolylineCollection.cpp.obj [ 53%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Print.cpp.obj [ 54%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/PrintConfig.cpp.obj [ 56%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/PrintObject.cpp.obj In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\PrintObject.cpp:1:0: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\Print.hpp: In constructor 'Slic3r::PrintObject::PrintObject(Slic3r::Print*, Slic3r::ModelObject*, const Slic3r::BoundingBoxf3&)': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\Print.hpp:156:18: warning: 'Slic3r::PrintObject::_model_object' will be initialized after [-Wreorder] ModelObject* _model_object; ^~~~~~~~~~~~~ C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\Print.hpp:85:23: warning: 'Slic3r::LayerHeightSpline Slic3r::PrintObject::layer_height_spline' [-Wreorder] LayerHeightSpline layer_height_spline; ^~~~~~~~~~~~~~~~~~~ C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\PrintObject.cpp:10:1: warning: when initialized here [-Wreorder] PrintObject::PrintObject(Print* print, ModelObject* model_object, const BoundingBoxf3 &modobj_bbox) ^~~~~~~~~~~ [ 57%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/PrintRegion.cpp.obj [ 58%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/SLAPrint.cpp.obj In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.hpp:11:0, from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.cpp:1: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp: In constructor 'Slic3r::SVG::SVG(const char*)': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:81:17: warning: 'Slic3r::SVG::filename' will be initialized after [-Wreorder] std::string filename; ^~~~~~~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.hpp:11:0, from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.cpp:1: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:19:10: warning: 'bool Slic3r::SVG::flipY' [-Wreorder] bool flipY; ^~~~~ C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:21:5: warning: when initialized here [-Wreorder] SVG(const char* afilename) : ^~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.hpp:11:0, from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.cpp:1: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp: In constructor 'Slic3r::SVG::SVG(const char*, const Slic3r::BoundingBox&, Slic3r::coord_t, bool)': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:81:17: warning: 'Slic3r::SVG::filename' will be initialized after [-Wreorder] std::string filename; ^~~~~~~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.hpp:11:0, from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.cpp:1: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:18:11: warning: 'Slic3r::Point Slic3r::SVG::origin' [-Wreorder] Point origin; ^~~~~~ C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:24:5: warning: when initialized here [-Wreorder] SVG(const char* afilename, const BoundingBox &bbox, const coord_t bbox_offset = scale_(1.), bool aflipY = false) : ^~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.hpp:11:0, from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.cpp:1: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp: In constructor 'Slic3r::SVG::SVG(const string&)': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:81:17: warning: 'Slic3r::SVG::filename' will be initialized after [-Wreorder] std::string filename; ^~~~~~~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.hpp:11:0, from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.cpp:1: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:19:10: warning: 'bool Slic3r::SVG::flipY' [-Wreorder] bool flipY; ^~~~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.hpp:11:0, from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.cpp:1: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:27:5: warning: when initialized here [-Wreorder] SVG(const std::string &filename) : ^~~ C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp: In constructor 'Slic3r::SVG::SVG(const string&, const Slic3r::BoundingBox&, Slic3r::coord_t, bool)': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:81:17: warning: 'Slic3r::SVG::filename' will be initialized after [-Wreorder] std::string filename; ^~~~~~~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.hpp:11:0, from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.cpp:1: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:18:11: warning: 'Slic3r::Point Slic3r::SVG::origin' [-Wreorder] Point origin; ^~~~~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.hpp:11:0, from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SLAPrint.cpp:1: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:30:5: warning: when initialized here [-Wreorder] SVG(const std::string &filename, const BoundingBox &bbox, const coord_t bbox_offset = scale_(1.), bool aflipY = false) : ^~~ [ 59%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/SlicingAdaptive.cpp.obj [ 60%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Surface.cpp.obj [ 62%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/SurfaceCollection.cpp.obj [ 63%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/SVG.cpp.obj In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.cpp:1:0: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp: In constructor 'Slic3r::SVG::SVG(const char*)': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:81:17: warning: 'Slic3r::SVG::filename' will be initialized after [-Wreorder] std::string filename; ^~~~~~~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.cpp:1:0: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:19:10: warning: 'bool Slic3r::SVG::flipY' [-Wreorder] bool flipY; ^~~~~ C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:21:5: warning: when initialized here [-Wreorder] SVG(const char* afilename) : ^~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.cpp:1:0: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp: In constructor 'Slic3r::SVG::SVG(const char*, const Slic3r::BoundingBox&, Slic3r::coord_t, bool)': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:81:17: warning: 'Slic3r::SVG::filename' will be initialized after [-Wreorder] std::string filename; ^~~~~~~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.cpp:1:0: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:18:11: warning: 'Slic3r::Point Slic3r::SVG::origin' [-Wreorder] Point origin; ^~~~~~ C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:24:5: warning: when initialized here [-Wreorder] SVG(const char* afilename, const BoundingBox &bbox, const coord_t bbox_offset = scale_(1.), bool aflipY = false) : ^~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.cpp:1:0: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp: In constructor 'Slic3r::SVG::SVG(const string&)': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:81:17: warning: 'Slic3r::SVG::filename' will be initialized after [-Wreorder] std::string filename; ^~~~~~~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.cpp:1:0: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:19:10: warning: 'bool Slic3r::SVG::flipY' [-Wreorder] bool flipY; ^~~~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.cpp:1:0: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:27:5: warning: when initialized here [-Wreorder] SVG(const std::string &filename) : ^~~ C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp: In constructor 'Slic3r::SVG::SVG(const string&, const Slic3r::BoundingBox&, Slic3r::coord_t, bool)': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:81:17: warning: 'Slic3r::SVG::filename' will be initialized after [-Wreorder] std::string filename; ^~~~~~~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.cpp:1:0: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:18:11: warning: 'Slic3r::Point Slic3r::SVG::origin' [-Wreorder] Point origin; ^~~~~~ In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.cpp:1:0: C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\SVG.hpp:30:5: warning: when initialized here [-Wreorder] SVG(const std::string &filename, const BoundingBox &bbox, const coord_t bbox_offset = scale_(1.), bool aflipY = false) : ^~~ [ 64%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/TriangleMesh.cpp.obj [ 65%] Building CXX object CMakeFiles/libslic3r.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Zip/ZipArchive.cpp.obj In file included from C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\libslic3r\Zip\ZipArchive.cpp:1:0: C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/miniz/miniz.h: In function 'tinfl_status tinfl_decompress(tinfl_decompressor*, const mz_uint8*, size_t*, mz_uint8*, mz_uint8*, size_t*, mz_uint32)': C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/miniz/miniz.h:1500:9: warning: this 'for' clause does not guard... [-Wmisleading-indentation] for ( i = 0; i <= 143; ++i) *p++ = 8; for ( ; i <= 255; ++i) *p++ = 9; for ( ; i <= 279; ++i) *p++ = 7; for ( ; i <= 287; ++i) *p++ = 8; ^~~ C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/miniz/miniz.h:1500:47: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for' for ( i = 0; i <= 143; ++i) *p++ = 8; for ( ; i <= 255; ++i) *p++ = 9; for ( ; i <= 279; ++i) *p++ = 7; for ( ; i <= 287; ++i) *p++ = 8; ^~~ C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/miniz/miniz.h: In function 'void tdefl_find_match(tdefl_compressor*, mz_uint, mz_uint, mz_uint, mz_uint*, mz_uint*)': C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/miniz/miniz.h:2284:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if (!dist) break; q = (const mz_uint16*)(d->m_dict + probe_pos); if (TDEFL_READ_UNALIGNED_WORD(q) != s01) continue; p = s; probe_len = 32; ^~ C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/miniz/miniz.h:2284:23: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' if (!dist) break; q = (const mz_uint16*)(d->m_dict + probe_pos); if (TDEFL_READ_UNALIGNED_WORD(q) != s01) continue; p = s; probe_len = 32; ^ [ 67%] Linking CXX static library liblibslic3r.a [ 67%] Built target libslic3r Scanning dependencies of target BSpline [ 68%] Building CXX object CMakeFiles/BSpline.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/BSpline/BSpline.cpp.obj [ 69%] Linking CXX static library libBSpline.a [ 69%] Built target BSpline Scanning dependencies of target expat [ 70%] Building C object CMakeFiles/expat.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/expat/xmlparse.c.obj [ 71%] Building C object CMakeFiles/expat.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/expat/xmlrole.c.obj [ 73%] Building C object CMakeFiles/expat.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/expat/xmltok.c.obj [ 74%] Linking C static library libexpat.a [ 74%] Built target expat Scanning dependencies of target admesh [ 75%] Building C object CMakeFiles/admesh.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/admesh/connect.c.obj [ 76%] Building C object CMakeFiles/admesh.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/admesh/normals.c.obj [ 78%] Building C object CMakeFiles/admesh.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/admesh/shared.c.obj [ 79%] Building C object CMakeFiles/admesh.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/admesh/stl_io.c.obj [ 80%] Building C object CMakeFiles/admesh.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/admesh/stlinit.c.obj [ 81%] Building C object CMakeFiles/admesh.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/admesh/util.c.obj [ 82%] Linking C static library libadmesh.a [ 82%] Built target admesh Scanning dependencies of target polypartition [ 84%] Building CXX object CMakeFiles/polypartition.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/polypartition.cpp.obj [ 85%] Linking CXX static library libpolypartition.a [ 85%] Built target polypartition Scanning dependencies of target poly2tri [ 86%] Building CXX object CMakeFiles/poly2tri.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/poly2tri/common/shapes.cc.obj [ 87%] Building CXX object CMakeFiles/poly2tri.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/poly2tri/sweep/advancing_front.cc.obj [ 89%] Building CXX object CMakeFiles/poly2tri.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/poly2tri/sweep/cdt.cc.obj [ 90%] Building CXX object CMakeFiles/poly2tri.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/poly2tri/sweep/sweep_context.cc.obj [ 91%] Building CXX object CMakeFiles/poly2tri.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/poly2tri/sweep/sweep.cc.obj C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\poly2tri\sweep\sweep.cc: In member function 'void p2t::Sweep::FlipEdgeEvent(p2t::SweepContext&, p2t::Point&, p2t::Point&, p2t::Triangle*, p2t::Point&)': C:\Users\VB\Documents\Bachelorarbeit\Slic3r_new1\Slic3r\xs\src\poly2tri\sweep\sweep.cc:702:11: warning: the compiler can assume that the address of 'ot' will never be NULL [-Waddress] if (&ot == NULL) { ^ [ 92%] Linking CXX static library libpoly2tri.a [ 92%] Built target poly2tri Scanning dependencies of target boost-nowide [ 93%] Building CXX object CMakeFiles/boost-nowide.dir/C_/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/boost/nowide/iostream.cpp.obj [ 95%] Linking CXX static library libboost-nowide.a [ 95%] Built target boost-nowide Scanning dependencies of target extrude-tin [ 96%] Building CXX object CMakeFiles/extrude-tin.dir/utils/extrude-tin.cpp.obj [ 97%] Linking CXX executable extrude-tin.exe CMakeFiles\extrude-tin.dir/objects.a(extrude-tin.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(Config.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(IO.cpp.obj): In function `Slic3r::IO::STL::read(std::__cxx11::basic_string, std::allocator >, Slic3r::Model*)': C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/IO.cpp:37: undefined reference to `boost::filesystem::path::filename() const' liblibslic3r.a(IO.cpp.obj): In function `Slic3r::IO::OBJ::read(std::__cxx11::basic_string, std::allocator >, Slic3r::Model*)': C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/IO.cpp:95: undefined reference to `boost::filesystem::path::filename() const' liblibslic3r.a(IO.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(IO.cpp.obj): In function `boost::filesystem::path_traits::convert(char const*, char const*, std::__cxx11::basic_string, std::allocator >&)': C:/dev/boost_1_63_0/boost/filesystem/path.hpp:981: undefined reference to `boost::filesystem::path::codecvt()' C:/dev/boost_1_63_0/boost/filesystem/path.hpp:981: undefined reference to `boost::filesystem::path_traits::convert(char const*, char const*, std::__cxx11::basic_string, std::allocator >&, std::codecvt const&)' liblibslic3r.a(IO.cpp.obj): In function `boost::filesystem::path_traits::convert(wchar_t const*, wchar_t const*, std::__cxx11::basic_string, std::allocator >&)': C:/dev/boost_1_63_0/boost/filesystem/path.hpp:989: undefined reference to `boost::filesystem::path::codecvt()' C:/dev/boost_1_63_0/boost/filesystem/path.hpp:989: undefined reference to `boost::filesystem::path_traits::convert(wchar_t const*, wchar_t const*, std::__cxx11::basic_string, std::allocator >&, std::codecvt const&)' liblibslic3r.a(Model.cpp.obj): In function `Slic3r::ModelObject::print_info() const': C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/Model.cpp:899: undefined reference to `boost::filesystem::path::filename() const' liblibslic3r.a(Model.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(MultiPoint.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(Point.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(PrintConfig.cpp.obj): In function `Slic3r::PrintConfigDef::PrintConfigDef()': C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/PrintConfig.cpp:1553: undefined reference to `boost::thread::hardware_concurrency()' liblibslic3r.a(PrintConfig.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `boost::thread_exception::thread_exception(int, char const*)': C:/dev/boost_1_63_0/boost/thread/exceptions.hpp:51: undefined reference to `boost::system::system_category()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `boost::thread::start_thread()': C:/dev/boost_1_63_0/boost/thread/detail/thread.hpp:178: undefined reference to `boost::thread::start_thread_noexcept()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `boost::thread::~thread()': C:/dev/boost_1_63_0/boost/thread/detail/thread.hpp:253: undefined reference to `boost::thread::detach()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `boost::thread::join()': C:/dev/boost_1_63_0/boost/thread/detail/thread.hpp:763: undefined reference to `boost::thread::get_id() const' C:/dev/boost_1_63_0/boost/thread/detail/thread.hpp:763: undefined reference to `boost::this_thread::get_id()' C:/dev/boost_1_63_0/boost/thread/detail/thread.hpp:766: undefined reference to `boost::thread::join_noexcept()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `boost::thread_group::join_all()': C:/dev/boost_1_63_0/boost/thread/detail/thread_group.hpp:118: undefined reference to `boost::thread::joinable() const' liblibslic3r.a(TriangleMesh.cpp.obj): In function `Slic3r::TriangleMeshSlicer<(Slic3r::Axis)0>::slice(std::vector > const&, std::vector >, std::allocator > > >*) const': C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/libslic3r.h:109: undefined reference to `boost::thread::hardware_concurrency()' C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/libslic3r.h:109: undefined reference to `boost::thread::hardware_concurrency()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `Slic3r::TriangleMeshSlicer<(Slic3r::Axis)1>::slice(std::vector > const&, std::vector >, std::allocator > > >*) const': C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/libslic3r.h:109: undefined reference to `boost::thread::hardware_concurrency()' C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/libslic3r.h:109: undefined reference to `boost::thread::hardware_concurrency()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `Slic3r::TriangleMeshSlicer<(Slic3r::Axis)2>::slice(std::vector > const&, std::vector >, std::allocator > > >*) const': C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/libslic3r.h:109: undefined reference to `boost::thread::hardware_concurrency()' liblibslic3r.a(TriangleMesh.cpp.obj):C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/libslic3r.h:109: more undefined references to `boost::thread::hardware_concurrency()' follow liblibslic3r.a(TriangleMesh.cpp.obj): In function `void Slic3r::_parallelize_do(std::queue > >*, boost::mutex*, boost::function)': C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/libslic3r.h:91: undefined reference to `boost::this_thread::interruption_point()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `void Slic3r::_parallelize_do(std::queue > >*, boost::mutex*, boost::function)': C:/Users/VB/Documents/Bachelorarbeit/Slic3r_new1/Slic3r/xs/src/libslic3r/libslic3r.h:91: undefined reference to `boost::this_thread::interruption_point()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `boost::detail::thread_data > >*, boost::mutex*, boost::function), boost::_bi::list3 > >*>, boost::_bi::value, boost::_bi::value > > > >::thread_data(boost::_bi::bind_t > >*, boost::mutex*, boost::function), boost::_bi::list3 > >*>, boost::_bi::value, boost::_bi::value > > >&&)': C:/dev/boost_1_63_0/boost/thread/detail/thread.hpp:97: undefined reference to `boost::detail::thread_data_base::~thread_data_base()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `boost::detail::thread_data > >*, boost::mutex*, boost::function), boost::_bi::list3 > >*>, boost::_bi::value, boost::_bi::value > > > >::thread_data(boost::_bi::bind_t > >*, boost::mutex*, boost::function), boost::_bi::list3 > >*>, boost::_bi::value, boost::_bi::value > > >&&)': C:/dev/boost_1_63_0/boost/thread/detail/thread.hpp:97: undefined reference to `boost::detail::thread_data_base::~thread_data_base()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `boost::detail::thread_data > >*, boost::mutex*, boost::function), boost::_bi::list3 > >*>, boost::_bi::value, boost::_bi::value > > > >::~thread_data()': C:/dev/boost_1_63_0/boost/thread/detail/thread.hpp:90: undefined reference to `boost::detail::thread_data_base::~thread_data_base()' liblibslic3r.a(TriangleMesh.cpp.obj): In function `boost::detail::thread_data > >*, boost::mutex*, boost::function), boost::_bi::list3 > >*>, boost::_bi::value, boost::_bi::value > > > >::~thread_data()': C:/dev/boost_1_63_0/boost/thread/detail/thread.hpp:90: undefined reference to `boost::detail::thread_data_base::~thread_data_base()' liblibslic3r.a(TriangleMesh.cpp.obj):TriangleMesh.cpp:(.rdata$.refptr._ZTVN5boost6detail16thread_data_baseE[.refptr._ZTVN5boost6detail16thread_data_baseE]+0x0): undefined reference to `vtable for boost::detail::thread_data_base' liblibslic3r.a(BoundingBox.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(ClipperUtils.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(ExPolygon.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(Geometry.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(AMF.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(TMF.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(LayerHeightSpline.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(Line.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(Polygon.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(Polyline.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' liblibslic3r.a(ExPolygonCollection.cpp.obj): In function `__static_initialization_and_destruction_0': C:/dev/boost_1_63_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()' C:/dev/boost_1_63_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()' collect2.exe: error: ld returned 1 exit status mingw32-make.exe[2]: *** [CMakeFiles\extrude-tin.dir\build.make:105: extrude-tin.exe] Error 1 mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:296: CMakeFiles/extrude-tin.dir/all] Error 2 mingw32-make.exe: *** [Makefile:83: all] Error 2 ```


I did find a solution though: It seems that I can use the custom MinGW from Slic3r Perl and the normal installation in parallel. I just have to 'specify' which to use when. Since the normal MinGW is in C:/mingw64 (which is in PATH) I just change that folder to mingw64_1 whenever I want to compile Slic3r and change C:/Strawberry (which has the custom MinGW and is in PATH too) to Strawberry_1 whenever I start gdbgui. So whatever is not needed will not be available via PATH. This really isn't very elegant but doesn't take too much time and I'll take it for now.

N4rki commented 6 years ago

The initial goal I specified in this thread has been accomplished. At first I was using the 3mf specific part_number that is already read from 3mf source files and parsed that as a materialID. This ID is then used to determining the color of each polygon in SVG Slicing (via Window -> DLP Projector -> Export SVG). Even more so, my fork is now utilizing the "Extruder" setting of each volume for this so the user can set it from the Object Settings window.

By the way, when my project is finished I am more than happy to discuss which parts might be of value to Slic3r and what I'd have to possibly change in order to make it more useful and fitting with the general programming guidelines that should be followed. I would love to contribute something!

Until then, there is another change I'd like to implement: It would be great if the produced SVG is not sized according to the bounding box of all ModelObjects, but instead takes the bed shape as size.

So this would be the const Sizef3 size parameter in SLAPrint::write_svg.

The bed_shape ConfigOption is contained in PrintConfigDef (as well as class PrintConfig : public GCodeConfig).

What I am not quite sure of is whether SLAPrintConfig already holds the bed_shape ConfigOption (because it extends SaticPrintConfig). Checking via this->config.has("bed_shape") in SLAPrint::write_svg returns false. Is there another way to directly grab this parameter from the PrintConfig?

Alternatively, a bed_shape configoption (or bed_size for that matter) would have to be added to the SLAPrintConfig and specified in the constructor in SLAPrintOptions.pm, right? So after having added ConfigOptionPoints bed_shape; to SLAPrintConfig, how exactly do I grab bed_shape from PrintConfig in SLAPrintOptions.pm?

Here is the start of SLAPrintOptions.pm. I added that last line. Would this be the right way and if so, can somebody complete the last call for me?

sub new {
    my ($class, $parent) = @_;
    my $self = $class->SUPER::new($parent, -1, "SLA/DLP Print", wxDefaultPosition, wxDefaultSize);

    $self->config(Slic3r::Config::SLAPrint->new);
    $self->config->apply_dynamic(wxTheApp->{mainframe}->{plater}->config);

    # Set some defaults
    $self->config->set('infill_extrusion_width', 0.5)  if $self->config->infill_extrusion_width == 0;
    $self->config->set('support_material_extrusion_width', 1)  if $self->config->support_material_extrusion_width == 0;
    $self->config->set('perimeter_extrusion_width', 1) if $self->config->perimeter_extrusion_width == 0;
    $self->config->set('bed_shape', <???>);

I thought I'd ask this here because it might be very easy for somebody who is more familiar with the config structure and perl.

N4rki commented 6 years ago

I somehow got it to work :) I would say this can be closed now...