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: Default: -tiff:packbits |
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}]
[-silent] |
For a description of the correction engine behavior go here.
${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}
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
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.
Annotation File Syntax
B_TEXT_ANNOTATION
# Use a BOX to specify text position :
BOX ${MINX_MM} ${MINY_MM} ${MAXX_MM} ${MAXY_MM}
# Or, use HEIGHT and XY to specify text position :
XY ${X_MM} ${Y_MM}
HEIGHT ${HEIGHT_MM}
ROTATION ${DEGREES}
SCALE ${SCALE}
INVERSE ${'YES' | 'NO'}
FRAME ${'YES' | 'NO'}
MARGIN ${MARGIN_MM}
READING ${'NORMAL' | 'BACKWARDS'}
B_TEXT
${LINE1}
${LINE2}
...
${LINEN}
E_TEXT
E_TEXT_ANNOTATION
Sample text annotation file with THREE annotations
B_TEXT_ANNOTATION
BOX 497.246 22.6962 511.977 28.6294
ROTATION 0
INVERSE NO
MARGIN 0.2
FRAME YES
B_TEXT
TEXT_1
E_TEXT
E_TEXT_ANNOTATION
B_TEXT_ANNOTATION
XY 33.5472 581.419
HEIGHT 15
B_TEXT
TEXT_2
E_TEXT
E_TEXT_ANNOTATION
B_TEXT_ANNOTATION
BOX 548.973 313.895 597.668 326.325
ROTATION 90
INVERSE YES
MARGIN 0.01
READING BACKWARDS
B_TEXT
TEXT_3 IS
MULTI -
LINE
E_TEXT
E_TEXT_ANNOTATION