diff --git a/sfc/slicer.py b/sfc/slicer.py index e161277..871f089 100755 --- a/sfc/slicer.py +++ b/sfc/slicer.py @@ -217,17 +217,18 @@ else: if height is not None and height < 0 and z_levels[-1] > height: z_levels.append(height - z_off) -z_levels[-1] += end - -for next_z in z_levels: +for i in range(0, len(z_levels)): + next_z = z_levels[i] wires = shape.slice(Base.Vector(0, 0, 1), next_z + epsilon) + if i == len(z_levels) - 1: + next_z += end if z_step is None or last_z is None or last_z - z_step <= next_z: dump_level(wires, next_z + z_off) else: d = last_z - next_z n = int(d // z_step) + 1 - for i in range(0, n): - dump_level(wires, last_z - (i + 1) * (d / n) + z_off) + for j in range(0, n): + dump_level(wires, last_z - (j + 1) * (d / n) + z_off) last_z = next_z #