Attempts to fix OSX and Win builds

This commit is contained in:
Lukas Matena 2018-02-28 19:53:32 +01:00
parent a62ad3323f
commit 9ea803b000
3 changed files with 17 additions and 35 deletions

View File

@ -31,8 +31,7 @@ TODO LIST
#define strcasecmp _stricmp #define strcasecmp _stricmp
#endif #endif
constexpr bool peters_wipe_tower = false; // sparse wipe tower inspired by Peter's post processor - not finished yet const bool peters_wipe_tower = false; // sparse wipe tower inspired by Peter's post processor - not finished yet
constexpr float min_layer_difference = 2*m_perimeter_width;
namespace Slic3r namespace Slic3r
{ {
@ -468,7 +467,7 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::prime(
// therefore the homing position is shifted inside the bed by 0.2 in the firmware to [0.2, -2.0]. // therefore the homing position is shifted inside the bed by 0.2 in the firmware to [0.2, -2.0].
// box_coordinates cleaning_box(xy(0.5f, - 1.5f), m_wipe_tower_width, wipe_area); // box_coordinates cleaning_box(xy(0.5f, - 1.5f), m_wipe_tower_width, wipe_area);
//FIXME: set the width properly //FIXME: set the width properly
constexpr float prime_section_width = 60.f; const float prime_section_width = 60.f;
box_coordinates cleaning_box(xy(5.f, 0.f), prime_section_width, 15.f); box_coordinates cleaning_box(xy(5.f, 0.f), prime_section_width, 15.f);
PrusaMultiMaterial::Writer writer; PrusaMultiMaterial::Writer writer;
@ -1191,18 +1190,6 @@ void WipeTowerPrusaMM::plan_toolchange(float z_par, float layer_height_par, unsi
depth *= m_extra_spacing; depth *= m_extra_spacing;
m_plan.back().tool_changes.push_back(WipeTowerInfo::ToolChange(old_tool, new_tool, depth)); m_plan.back().tool_changes.push_back(WipeTowerInfo::ToolChange(old_tool, new_tool, depth));
// Calculate m_wipe_tower_depth (maximum depth for all the layers) and propagate depths downwards
/*float this_layer_depth = m_plan.back().toolchanges_depth();
m_plan.back().depth = this_layer_depth;
if (this_layer_depth > m_wipe_tower_depth - m_perimeter_width)
m_wipe_tower_depth = this_layer_depth + m_perimeter_width;
for (int i = m_plan.size() - 2; i >= 0 && m_plan[i].depth < this_layer_depth; i-- ) {
if ( this_layer_depth - m_plan[i].depth < min_layer_difference && !m_plan[i].tool_changes.empty())
m_plan[i].depth += this_layer_depth - m_plan[i].depth;
m_plan[i].depth = this_layer_depth;
}*/
} }
@ -1224,7 +1211,7 @@ void WipeTowerPrusaMM::plan_tower()
for (int i = layer_index - 1; i >= 0 /*&& m_plan[i].depth < this_layer_depth*/; i--) for (int i = layer_index - 1; i >= 0 /*&& m_plan[i].depth < this_layer_depth*/; i--)
{ {
if (m_plan[i].depth - this_layer_depth < min_layer_difference ) if (m_plan[i].depth - this_layer_depth < 2*m_perimeter_width )
m_plan[i].depth = this_layer_depth; m_plan[i].depth = this_layer_depth;
} }
} }

View File

@ -10,22 +10,17 @@
#include "WipeTower.hpp" #include "WipeTower.hpp"
// Following is used to calculate extrusion flow - should be taken from config in future // Following is used to calculate extrusion flow - should be taken from config in future
constexpr float Filament_Area = M_PI * 1.75f * 1.75f / 4.f; // filament area in mm^3 const float Filament_Area = M_PI * 1.75f * 1.75f / 4.f; // filament area in mm^3
constexpr float Nozzle_Diameter = 0.4f; // nozzle diameter in mm const float Nozzle_Diameter = 0.4f; // nozzle diameter in mm
// desired line width (oval) in multiples of nozzle diameter - may not be actually neccessary to adjust // desired line width (oval) in multiples of nozzle diameter - may not be actually neccessary to adjust
constexpr float Width_To_Nozzle_Ratio = 1.25f; const float Width_To_Nozzle_Ratio = 1.25f;
// m_perimeter_width was hardcoded until now as 0.5 (for 0.4 nozzle and 0.2 layer height) // m_perimeter_width was hardcoded until now as 0.5 (for 0.4 nozzle and 0.2 layer height)
// FIXME m_perimeter_width is used in plan_toolchange - take care of proper initialization value when changing to variable // FIXME m_perimeter_width is used in plan_toolchange - take care of proper initialization value when changing to variable
constexpr float Konst = 1.f; const float Konst = 1.f;
constexpr float m_perimeter_width = Nozzle_Diameter * Width_To_Nozzle_Ratio * Konst; const float m_perimeter_width = Nozzle_Diameter * Width_To_Nozzle_Ratio * Konst;
constexpr float WT_EPSILON = 1e-3f;
const float WT_EPSILON = 1e-3f;
namespace Slic3r namespace Slic3r
@ -147,14 +142,14 @@ struct WipeTowerParameters {
ramming_speed.clear(); ramming_speed.clear();
ramming_buttons.clear(); ramming_buttons.clear();
for (unsigned int i=0;i<4;++i) { for (unsigned int i=0;i<4;++i) {
ramming_speed.push_back(std::vector<float>{7.6, 7.6, 7.6, 7.6, 9.0, 9.0, 9.0, 10.7, 10.7, 10.7}); ramming_speed.push_back(std::vector<float>{7.6f, 7.6f, 7.6f, 7.6f, 9.f, 9.f, 9.f, 10.7f, 10.7f, 10.7f});
ramming_buttons.push_back(std::vector<std::pair<float,float>>{{0.05, 6.6},{0.45, 6.8},{0.95, 7.8},{1.45, 8.3},{1.95, 9.7},{2.45,10},{2.95, 7.6},{3.45, 7.6},{3.95, 7.6},{4.45, 7.6},{4.95, 7.6}}); ramming_buttons.push_back(std::vector<std::pair<float,float>>{{0.05f, 6.6f},{0.45f, 6.8f},{0.95f, 7.8f},{1.45f, 8.3f},{1.95f, 9.7f},{2.45f,10.f},{2.95f, 7.6f},{3.45f, 7.6f},{3.95f, 7.6f},{4.45f, 7.6f},{4.95f, 7.6f}});
} }
wipe_volumes = {{ 0, 60, 60, 60}, wipe_volumes = {{ 0.f, 60.f, 60.f, 60.f},
{ 60, 0, 60, 60}, { 60.f, 0.f, 60.f, 60.f},
{ 60, 60, 0, 60}, { 60.f, 60.f, 0.f, 60.f},
{ 60, 60, 60, 0}}; { 60.f, 60.f, 60.f, 0.f}};
filament_wipe_volumes = {{30,30},{30,30},{30,30},{30,30}}; filament_wipe_volumes = {{30.f,30.f},{30.f,30.f},{30.f,30.f},{30.f,30.f}};
} }
int bridging = 0.f; int bridging = 0.f;

View File

@ -68,7 +68,7 @@ private:
class ButtonToDrag { class ButtonToDrag {
public: public:
bool operator<(ButtonToDrag& a) { return m_pos.m_x < a.m_pos.m_x; } bool operator<(const ButtonToDrag& a) const { return m_pos.m_x < a.m_pos.m_x; }
ButtonToDrag(wxPoint2DDouble pos) : m_pos{pos} {}; ButtonToDrag(wxPoint2DDouble pos) : m_pos{pos} {};
wxPoint2DDouble get_pos() const { return m_pos; } wxPoint2DDouble get_pos() const { return m_pos; }
void move(double x,double y) { m_pos.m_x+=x; m_pos.m_y+=y; } void move(double x,double y) { m_pos.m_x+=x; m_pos.m_y+=y; }