Web Page Logo v3

Documentation for QmRTCR

The command line usage for the client application (i.e. an executable that uses the QmRTCR library is shown below:

Basic Command Line

qmrtcrclient64.exe {JOB}+ [{MISC}]

  -- OR --

qmrtcrclient64.exe @{cmd_file_path} [{MISC}]

JOB

+job: is a MANDATORY argument. Indicates the start of a new job. At least one JOB is required.

+job:{input_gdsii_file_path},{output_dir_path}

{input_gdsii_file_path} is the path to a valid GDSII file with units of um (microns) and grid = 0.001 (1 nm resolution)

{output_dir_path} is the path to a valid and writable directory. The directory MUST exist


Pixel Size/Density

Specify the image resolution in dots-per-inch OR pixel-size in file units (um).

[-dpi:{dpix}[,{dpiy}] | -pixelsize:{sizex}[,{sizey}]]

The second parameter is optional. If specified, the image can have non-square pixels (different resolution along X and Y)

Default: resolution is set to pixel-size of 1.0 file unit (um) along X and Y


Correction

Apply corrections to the source data before rasterization

-correction:{correction_file_path}[,{tolerance}]

{correction_file_path} is the path of a valid correction file.

{tolerance} is the margin of error when applying corrections.

See 'CORRECTION FILE SYNTAX' for file syntax.

Default: The source data is used as is.


Annotations

Annotations are alpha-numeric strings generated by the program - they don't come from the input data. These can be used to identify a PCB or even to serialize them as they are exposed.

[-annotation:{annotation_file_path}]

{annotation_file_path} is the path of a valid annotation file.

See 'ANNOTATION FILE SYNTAX' below for file syntax.

Default: If directive not present, no annotations are added to the input data.


Polarity Reversal

[-invertimage]

Invert the image polarity (image background is black (set), data is white (reset))

Default: image background is white (reset), data is black (set)


Pixel Removal/Addition

A specialized function requested by one of our users.

[-shift:INS_WHITE | -shift:INS_BLACK | -shift:REMOVE]

Add/remove 1-px row/column lines to the raster image at specific pixel locations

INS_WHITE : insert white line(s) at specific pixel rows/columns

INS_BLACK : insert black line(s) at specific pixel rows/columns

REMOVE : remove lines at specific pixel rows/columns

Default : No lines added/removed

INS_WHITE, INS_BLACK are not affected by image polarity (-invertimage) or gray level (-graylayers)

See -colshift, -rowshift


Pixel Row/Column Shifting

A specialized function requested by one of our users.

[-colshift:{col_px},...{col_px}]*

Specify a list of comma-separated column numbers to add/remove 1-px lines

The column numbers are in pixel space (post rasterization)

See also: -shift:


[-rowshift:{row_px},...{row_px}]*

Specify a list of comma-separated row numbers to add/remove 1-px lines

The row numbers are in pixel space (post rasterization)

See also: -shift:


Greyscale Dithering

Specify a list of layers to be rasterized with dithering using a 8x8 Bayer matrix

[-graylayers:{grey_level},{layer_list}]

{grey_level} is the dithering value (0 - 1) where 0 = all scratched; 1 = all paint.

{layer_list} is a comma-separated list of layer(s) or layer:datatype(s) e.g 1,2:0,3:1,3:3. If datattype is missing, all datatypes for the specified layer are used.

The remaining layers will be rasterized with dither value of 1

Grey layers will be rasterized BEFORE the other layers and therefore get overwritten in areas of overlap.

Appearance of the dithered areas is subject to image polarity (-invertimage)

Default: All layers are rasterized at dither = 1.


Bitmap Output

Use this argument to define the type of bitmap output.

[-tiff:packbits | -tiff:bmp | -tiff:raw | -tiff:none]

packbits = compressed TIFF

bmp = uncompressed BMP

raw = uncompressed dump of the image buffer with a small header. The format of the raw file is as follows:
7 bytes [0..6] (identifier): 'L''G''R''A''W''0''0'
4 bytes [7..10] (width in pixels)
4 bytes [11..14] (height in pixels)
8 bytes [15..22] (pixel data size in bytes)
(pixel data)

Default: -tiff:packbits


Raster Direction

Reverse the direction of rasterization along rows. min-x point (leftmost) in data space would correspond to max-x point in image space (rightmost)

[-right-to-left]

Default: left-to-right. min-x point (leftmost) in data space would correspond to min-x point in image space (leftmost)


Masking

Specifies the region of the data (in file units) to be preserved while the rest of it is "scratched" off.

[-mask:{minx},{miny},{maxx},{maxy}]

{minx}..{maxy} are the extents of the data to be preserved in the image.

masking is applied against the extents of the view cell. Therefore any data within the view cell NOT inside {minx}..{maxy} will be scratched.

scratched pixel = background pixel. (depending on image polarity)

Images whose data extents lie completely within the masked area are NOT affected.

Default: No masking. The image contains all the data within it's extents.


Concurrent Threads

Specify the number of concurrent threads available for various operations such as corrections, rasterization, shifting, formatting etc.

[-thrnum:{n_threads}]

Default: 0 = number of CPU cores in the system


Tiling - Method 1

Specify the extents of a 'tile' (window of data) to be rasterized

[-tile:{minx},{miny},maxpt:{maxx},{maxy}]*

{minx}..{maxy} are in file units (um)

-tile:, -autotile: can be specified multiple times


Tiling - Method 2

Specify the extents of a 'tile' (window of data) to be rasterized

[-tile:{minx},{miny},tilesz:{width},{height}]*

{minx},{miny} represents the lower-left point of the tile while {width} {height} are the dimensions (>0.0)

{minx},{miny},{width},{height} are in file units (um)

-tile:, -autotile: can be specified multiple times


Tiling - Method 3

Specify the extents of a 'tile' (window of data) to be rasterized

[-tile:{minx},{miny},tilebuf:{size_mb}]*

{minx},{miny} represents the lower-left point of the tile (in file units)while {size_mb} is the estimated buffer size in mb (1024*1024 bytes) to hold the raster image

The computed tile is a square (width == height)

-tile:, -autotile: can be specified multiple times


Auto Tiling - Method 1

Generate a set of equal sized tiles from a region of interest {roi_minx}..{roi_maxy} based on the number of tiles along x,y

[-autotiles:{roi_minx},{roi_miny},{roi_maxx},{roi_maxy},ntiles:{nx},{ny}]

{nx} >= 1, {ny} >= 1. {roi_minx}..{roi_maxy} are in file units (um)

The generated tiles can be ordered in a certain way. See -origin, -direction

-tile:, -autotile: can be specified multiple times


Auto Tiling - Method 2

Generate a set of equal sized tiles from a region of interest {roi_minx}..{roi_maxy} based on the tile size {width},{height} (all in file units)

[-autotiles:{roi_minx},{roi_miny},{roi_maxx},{roi_maxy},tilesz:{width},{height}]

The generated tiles can be ordered in a certain way. See -origin, -direction

-tile:, -autotile: can be specified multiple times


Tiling Origin

Control the order in which auto-tiles are rasterized by specifying the location of the first tile. LL = lower-left, LR = lower-right, UL = upper-left, UR = upper right)

[-origin:LL | -origin:LR | -origin:UL | -origin:UR]

Default: LL

See -direction


Tiling Direction

Control the order in which auto-tiles are rasterized by specifying the direction in which to progress after the first tile

[-direction:up | -direction:down | -direction:left | -direction:right]

LL (left = up, right = down), LR (right = up, left = down), UL (left = down, right = up), UR (right = down, left = up)

Default: left

Related: -origin


Limit Tiling

Select which of the specified tiles will be rasterized. The rest will be ignored

[-only:{tile_num}[,{tile_num}]*

1 <= {tile_num} <= (total no. tiles)

Default: All the specified tiles will be rasterized


Keep Tile Bitmap Output

Select which of the specified tiles will be formatted and written to disk. The rest will be rasterized but not written

[-keep:{tile_num}[,{tile_num}]*

1 <= {tile_num} <= (total no. tiles)

Default: All the specified tiles will be formatted and written to disk

Related: -tiff:


Debug Mode

Keep temporary files and logs for diagnosis and troubleshooting

[-dbg]

Default: temporary files are deleted once the job is complete


Using a CMD File as Input

Another way of specifying one or more jobs by simply specifying the same command-line arguments for {JOB}+ in a text file, one argument per line.

@{cmd_file_path}

{MISC} (OPTIONAL) :=

[-log:{log_path}] | [-log+:{log_path}]
Enable logging by specifying the path where the log file will be created. -log: will create a new file while -log+: will append to an existing file. Default: No log file is created

[-silent]
DO NOT write messages to stdout/stderr (run silently)
Default: Write progress and updates to stdout and error/warnings to stderr




CORRECTION FILE SYNTAX

For a description of the correction engine behavior go here.


Correction Definition

${REF_X}, ${REF_Y}, ${DELTA_X}, ${DELTA_Y}

${REF_X}, ${REF_Y}, ${DELTA_X}, ${DELTA_Y}

${REF_X}, ${REF_Y}, ${DELTA_X}, ${DELTA_Y}

${REF_X}, ${REF_Y}, ${DELTA_X}, ${DELTA_Y}


Sample Correction File

This sample file has 6 domains (i.e. regions where measurements have been made and corrections computed.)

 13549.987,  14300    , 1000, 1000
159250.012,  14300    , 1000, 1000
159250.012, 250700.012, 1000, 1000
 13549.987, 250700.012, 1000, 1000
172249.987,  14300    , 0   , 0
242750.012,  14300    , 0   , 0
242750.012, 250700.012, 0   , 0
172249.987, 250700.012, 0   , 0
255749.987,  14300    , 0   , 0
401450.012,  14300    , 0   , 0
401450.012, 250700.012, 0   , 0
255749.987, 250700.012, 0   , 0
  9500    , 264750    , 0   , 0
162499.999, 264749.999, 0   , 0
162500    , 495250    , 0   , 0
9500      , 495250    , 0   , 0
162499.999, 264749.999, 0   , 0
252500    , 264750    , 0   , 0
252499.999, 495249.999, 0   , 0
162500    , 495250    , 0   , 0
255749.987, 495700.012, 0   , 0
401450.012, 495700.012, 0   , 0
401450.012, 259300    , 0   , 0
255749.987, 259300    , 0   , 0



ANNOTATION FILE SYNTAX

The annotation function is used to apply real-time alpha-numeric marking to each panel as it is exposed. The string and variable data is read from a file.