Change Details
sfc/slicer.py |
213 | 213 | |
214 | 214 | for next_z in z_levels: |
215 | 215 | wires = shape.slice(Base.Vector(0, 0, 1), next_z + epsilon) |
216 | | if z_step is None or last_z is None or last_z + z_step >= next_z: |
| 216 | if z_step is None or last_z is None or last_z - z_step <= next_z: |
217 | 217 | dump_level(wires, next_z + z_off) |
218 | 218 | else: |
219 | | d = next_z - last_z |
220 | | n = (d // z_step) + 1 |
| 219 | d = last_z - next_z |
| 220 | n = int(d // z_step) + 1 |
221 | 221 | for i in range(0, n): |
222 | | dump_level(wires, last_z + (i + 1) * (d / n) + z_off) |
| 222 | dump_level(wires, last_z - (i + 1) * (d / n) + z_off) |
223 | 223 | last_z = next_z |
224 | 224 | |
225 | 225 | # |
Download the corresponding diff file