Swaths and passes¶
A swath, or pass, is one horizontal strip printed in a single sweep of the head. The RIP divides an image into these passes and records their positions in the job.
Bands and interleaving¶
A head's nozzles sit at a fixed pitch along Y, 1/90″ on c6n90 and 1/180″
on c4n180. Anything finer than that is built by interleaving passes, each
offset from the last by one image row:
At 630 dpi on a c6n90 that works out at 7 passes per band. Each pass
prints every 7th row, offset from the previous one by 1/630″.
It is the pitch, not the nozzle count
The two happen to coincide on c6n90 (90 nozzles at 90 npi) and do not
on c4n180 (60 nozzles fired at 180 npi). DPI must be a multiple of the
pitch. python rip/rip.py --list-dpi --head <name> prints the values
that qualify.
The band step is the shortest plumbed slot¶
A band contains lines_per_band consecutive image rows covered by
passes_per_band passes. The head advances between bands by the height of the
shortest plumbed slot. This lets every ink cover the image without leaving
gaps.
On c6n90, each slot covers a full column, so the band step is one inch. On
c4n180, the shortest ink block has 60 nozzles in a 180-nozzle column. Its
band step is one third of an inch, although the column is a full inch long.
The RIP does this slicing, giving each pass the rows its nozzles will cover,
and the job header records every pass's absolute Y position
(y_positions_mm) along with the delta to the next one.
Lead-in: why the first passes sit below the image¶
Heads with slots at different heights need lead-in passes below the image so
the highest slot can reach the bottom rows. The first Y positions are
therefore negative: about −16.93 mm on c4n180, or two band steps. Only some
inks fire during the lead-in; the final band steps complete coverage for the
others.
The plugin uses the job's pass schedule to calculate travel bounds, including
this movement below the origin. If the lower Y bound fails preflight, move the
print origin up. Do not use extra_margin to add lead-in clearance: it
changes where the image lands.
Consequences worth knowing¶
Each printed row corresponds to one nozzle and pass. A failed nozzle therefore produces regularly spaced missing rows, which makes it possible to identify it from a nozzle-check print.
Band seams repeat at the band step. A 1/3″ step produces three times as many
seams as a 1″ step. Use --band-overlap to feather the boundaries.
The plugin follows each pass's Y position and sweeps X. The job contains the band geometry, so the plugin does not need head-specific pass calculations.
Overscan and the travel rectangle¶
The head must reach constant speed before firing. start_overscan provides
acceleration distance before the print area; the trigger fires
trigger_distance into the sweep. end_overscan provides space after the
print area and must cover deceleration at print_speed.
The plugin folds both, plus the configured head offsets, into a travel
rectangle (print_bounds) and checks it against the machine's axis limits
before printing.
Padded width¶
Nozzle columns are offset along X. The encoder shifts their data to compensate and pads the image width so every ink can reach the full image. The plugin uses this padded width from the job metadata when calculating bounds.