Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordaid <daid303@gmail.com>2014-12-15 11:59:11 +0300
committerdaid <daid303@gmail.com>2014-12-15 11:59:11 +0300
commit2e5b72cfefc4c60214f0793dbe13f948a3a7e7f1 (patch)
tree1dffab6107e9351d89cc689b066156ba51693232
parentedf2f897d10b3a6af889c0d3e81f6d15ff659981 (diff)
parent3aa638ea425980811796110bed448e5e73b1bcc5 (diff)
Merge pull request #150 from presslab-us/fixpathstart14.12.1
Reset start position for new layers
-rw-r--r--src/fffProcessor.h3
-rw-r--r--src/gcodeExport.cpp14
-rw-r--r--src/gcodeExport.h5
3 files changed, 20 insertions, 2 deletions
diff --git a/src/fffProcessor.h b/src/fffProcessor.h
index 6844cb96f8..6d072bc601 100644
--- a/src/fffProcessor.h
+++ b/src/fffProcessor.h
@@ -471,6 +471,7 @@ private:
}
}
gcode.setZ(z);
+ gcode.resetStartPosition();
bool printSupportFirst = (storage.support.generated && config.supportExtruder > 0 && config.supportExtruder == gcodeLayer.getExtruder());
if (printSupportFirst)
@@ -579,7 +580,7 @@ private:
}
- PathOrderOptimizer partOrderOptimizer(gcode.getPositionXY());
+ PathOrderOptimizer partOrderOptimizer(gcode.getStartPositionXY());
for(unsigned int partNr=0; partNr<layer->parts.size(); partNr++)
{
partOrderOptimizer.addPolygon(layer->parts[partNr].insets[0][0]);
diff --git a/src/gcodeExport.cpp b/src/gcodeExport.cpp
index e25de5a487..bd6036b308 100644
--- a/src/gcodeExport.cpp
+++ b/src/gcodeExport.cpp
@@ -11,7 +11,7 @@
namespace cura {
GCodeExport::GCodeExport()
-: currentPosition(0,0,0)
+: currentPosition(0,0,0), startPosition(INT32_MIN,INT32_MIN,0)
{
extrusionAmount = 0;
extrusionPerMM = 0;
@@ -129,6 +129,17 @@ Point GCodeExport::getPositionXY()
return Point(currentPosition.x, currentPosition.y);
}
+void GCodeExport::resetStartPosition()
+{
+ startPosition.x = INT32_MIN;
+ startPosition.y = INT32_MIN;
+}
+
+Point GCodeExport::getStartPositionXY()
+{
+ return Point(startPosition.x, startPosition.y);
+}
+
int GCodeExport::getPositionZ()
{
return currentPosition.z;
@@ -284,6 +295,7 @@ void GCodeExport::writeMove(Point p, int speed, int lineWidth)
}
currentPosition = Point3(p.X, p.Y, zPos);
+ startPosition = currentPosition;
estimateCalculator.plan(TimeEstimateCalculator::Position(INT2MM(currentPosition.x), INT2MM(currentPosition.y), INT2MM(currentPosition.z), extrusionAmount), speed);
}
diff --git a/src/gcodeExport.h b/src/gcodeExport.h
index aebb7bbe82..c0a6ee6375 100644
--- a/src/gcodeExport.h
+++ b/src/gcodeExport.h
@@ -27,6 +27,7 @@ private:
double minimalExtrusionBeforeRetraction;
double extrusionAmountAtPreviousRetraction;
Point3 currentPosition;
+ Point3 startPosition;
Point extruderOffset[MAX_EXTRUDERS];
char extruderCharacter[MAX_EXTRUDERS];
int currentSpeed, retractionSpeed;
@@ -67,6 +68,10 @@ public:
Point getPositionXY();
+ void resetStartPosition();
+
+ Point getStartPositionXY();
+
int getPositionZ();
int getExtruderNr();