diff --git a/sfc/slicer.py b/sfc/slicer.py index 4b21d27..8a48223 100755 --- a/sfc/slicer.py +++ b/sfc/slicer.py @@ -213,13 +213,13 @@ if height is not None and height < 0 and z_levels[-1] > height: for next_z in z_levels: wires = shape.slice(Base.Vector(0, 0, 1), next_z + epsilon) - if z_step is None or last_z is None or last_z + z_step >= next_z: + 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 = next_z - last_z - n = (d // z_step) + 1 + 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) + dump_level(wires, last_z - (i + 1) * (d / n) + z_off) last_z = next_z #