process each layer z step by z step
Stefan Schuermans

Stefan Schuermans commited on 2013-01-28 21:14:28
Showing 4 changed files, with 17 additions and 14 deletions.

... ...
@@ -10,8 +10,8 @@ set_tool_diameter 3
10 10
 set_move_z 3
11 11
 set_base_z 0
12 12
 set_cut_z_step 1
13
-set_feed_drill 100
14
-set_feed_mill 200
13
+set_feed_drill 1000
14
+set_feed_mill 2000
15 15
 
16 16
 read_dxf millme.dxf
17 17
 
... ...
@@ -116,8 +116,18 @@ void Layer::improvePaths(double eqDist)
116 116
  */
117 117
 void Layer::toGCode(const Settings &settings, GCode &gcode) const
118 118
 {
119
+  // cut step-wise
120
+  double z = settings.base_z;
121
+  do {
122
+    z -= settings.cut_z_step;
123
+    if (z < settings.cut_z)
124
+      z = settings.cut_z;
125
+
126
+    // cut path at current z
119 127
     Paths::const_iterator path;
120 128
     for (path = mPaths.begin(); path != mPaths.end(); ++path)
121
-    path->toGCode(settings, gcode);
129
+      path->toGCode(settings, z, gcode);
130
+
131
+  } while (z > settings.cut_z);
122 132
 }
123 133
 
... ...
@@ -88,9 +88,10 @@ void Path::removeEqPoints(double eqDist)
88 88
 /**
89 89
  * @brief convert path to G-code
90 90
  * @param[in] settings G-code creation settings
91
+ * @param[in] z z coordinate to use for G-code of path
91 92
  * @param[in,out] gcode new G-code is appended to existing G-code
92 93
  */
93
-void Path::toGCode(const Settings &settings, GCode &gcode) const
94
+void Path::toGCode(const Settings &settings, double z, GCode &gcode) const
94 95
 {
95 96
   // leave if no points
96 97
   if (mPoints.empty())
... ...
@@ -99,13 +100,6 @@ void Path::toGCode(const Settings &settings, GCode &gcode) const
99 100
   // move up
100 101
   gcode.appendUp(settings.move_z);
101 102
 
102
-  // cut step-wise
103
-  double z = settings.base_z;
104
-  do {
105
-    z -= settings.cut_z_step;
106
-    if (z < settings.cut_z)
107
-      z = settings.cut_z;
108
-
109 103
   // move to start
110 104
   gcode.appendFast(mPoints.front());
111 105
 
... ...
@@ -121,7 +115,5 @@ void Path::toGCode(const Settings &settings, GCode &gcode) const
121 115
 
122 116
   // move up
123 117
   gcode.appendUp(settings.move_z);
124
-
125
-  } while (z > settings.cut_z);
126 118
 }
127 119
 
... ...
@@ -63,9 +63,10 @@ public:
63 63
   /**
64 64
    * @brief convert path to G-code
65 65
    * @param[in] settings G-code creation settings
66
+   * @param[in] z z coordinate to use for G-code of path
66 67
    * @param[in,out] gcode new G-code is appended to existing G-code
67 68
    */
68
-  void toGCode(const Settings &settings, GCode &gcode) const;
69
+  void toGCode(const Settings &settings, double z, GCode &gcode) const;
69 70
 
70 71
   Points mPoints; ///< points of path
71 72
 };
72 73