QIS Documentation

The Qckvu Image Server is designed to read GDSII or OASIS file and to serve up to another application either image or vector data based on that file. It is designed to handle very large files. The connection between QIS and another application is via TCP/IP.

qic_flow.gif
For OASIS specific API commands, please go to the OASIS documentation index page.



Index of Commands and Functions

Opening a GDSII File

Open_GDSII instructs QIS to open a GDSII file.
Errors and Warnings describes error and warning messages returned to the client if a problem in opening the GDSII file is encountered by QIS.
Scan/Load Interrupt describes how to send a stop command in the middle of the scan/load phase of the GDSII file.
Set_Progress_Message
instructs the server to send back regular progress messages while loading and scanning a file.
Close_GDSII instructs QIS to close a GDSII file.
Errors and Warnings describes error and warning messages returned to the client if a problem in opening the GDSII file is encountered by QIS.
Set_Working_Directory instructs QIS to set a different working directory.
Get_Files_In_Directory instructs QIS to get the directory and file name.



Structure and Hierarchy

Open_Structure client instructs the server open a particular structure in the file.
Get_Structure_List
returns a complete list of structures (alphabetically)
Get_Structure_Extents
returns the extents of the structure(s) requested by the client.
Get_Structure_Children
returns the children of the structure name passed to the server.
Get_Structure_Root
returns the name of the top level structure. If there is more than one top level structure, returns a list of structures, separated by commas.
Get_Structure_Tree
Use this command to get all structure references of a structure. It traverses down the hierarchy as specified by the current nesting level, or down to the specified level if provided.
Get_Structure_References
returns any SREF's of the structure the client has specified found within the "display" window.
Set_Structure_Outline
controls whether to draw an extent outline of the structure references on the specified levels.
Set_Structure_Labels
defines which structures are to be drawn/labeled with the name.
Set_Load_Empty_Ref
defines whether empty structures are ignored or not.

Display Structure Outline
explains how a client can quickly throw up a structure outline view of a GDSII file immediately after scanning/loading.


Basic Database Info

Get_DBU
returns the database information stored in the header of the GDSII file. Two numbers are returned.
Get_QIS_Report
returns statistics on the GDSII file as well as the memory used to store it. File size, number of layers with data, number of structures etc ...
Get_QIS_Version
returns the Version of QIS


Layers, Colors and Patterns

Map and Pattern File Update
Updates to gdsplot.map and colfill.pat to support RGB.
Get_Layer_List
QIS returns a list of all layers/datatypes of the GDSII file.
Get_Colfill_Pat returns the colfill.pat file that contains bitmapped patterns for fills.
Set_Layers_On turns on a list of layers
Set_Layers_Off turns off a list of layers
Set_Layers_Fill
client sets the fill pattern/color for a layer or layers.
Set_Layers_Fill_Color
client sets the layer:datatype fill color.
Set_Layers_Outline_Color
client sets the outline color of a layer or layers.
Set_Layers_Outline_Type
client sets the outline type for each layer.
Set_SDF_Outline_Color
Set the outline color(R,G,B format) of the filtered structures drawn as boxes.
Set_SDF_Fill_Color
Set the Fill color(R,G,B format) of the filtered structures drawn as boxes.
Set_SDF_Fill
Set the Fill pattern of the boxes used to represent structures not rendered due to the display filter.
Set_Input_Layer_Map
Allows the clients to do layer:data type mapping before reading the GDSII file. Instructs QIS to ignore specific layers.
Set_Output_Layer_Map
Controls the output layer:datatype mapping when doing Save_GDSII or Save_GDSII_Structure.


Display Controls

Get_Window
returns the geometric window that the server has opened. (not in pixels but in GDSII DBU or UU)
Set_Window
client sends desired window for server to use. (GDSII DBU or UU)
Set_Exact_Window
client sends Exact window for server to use (to extract exact window). (GDSII DBU or UU)
Set_Draw_Window_ID
client sends QIS a Drawable (drawing area) and QIS would draw directly to this drawing area.
Set_Fill
toggles fill/outline of boundaries
Set_Array_Mode
sets display of arrays: outline, outer rows/columns, all cells.
Set_Outline
toggles fill/outline of boundaries (see Set Fill)
Set_Outline_Filter
toggles on/off the display of a boundary's outline.
Set_Display_Filter_Size
sets the minimum size of entities that should be rasterized (in screen pixels)
Set_Geometry_Marker
turns on/off a small marker at coordinate 1 of each geometry.
Set_Reference_Marker
turns on/off display of text and structure reference markers.
Set_Marker_Shape
marker shape can be toggled between a diamond and an "X".
Set_Text_Mode
turns on/off display of text
Set_Background_Color
sets the background to either black or white.
Set_Nesting_Level
controls levels of hierarchy that are displayed.
Set_Structure_Outline
controls whether a structure's contents are displayed or the structure is outlined.
Set_Structure_Labels
controls which structures are "labeled" with the name.
Set_Scale_Bar
toggles on/off a scale bar that can be overlaid onto the data.
Set_Text_Scale
Control the scale of the text in the viewer.


Moving Around the Display

Set_ Window
this is the basic command for telling QIS the window to process. Arguments are either in DBU or UU.


Getting an Image

Set_Image_Size
sets the size of the "display" window (Xpixels,Ypixels). The default size if not set is 800x600 but the client should set the image size.
Set_Image_Format
provides QIS with an X-Window handle so it can draw to it.
Redraw
tells QIS to calculate the current image and send it to client.
Get_Image
get image is used to get the partial image during the QIS drawing process. This is used to update the client's display during a long image draw.
Stop
tells QIS to stop the drawing process. (See synchronization of redraw and stop commands and also see image_ready command.)
Zoom_Home
similar to redraw but zooms to extents; QIS may have cached the "home" view for faster response.
Set_Zoom_In
Zoom in by 2x of the current window.
Image_Ready
server command indicating that the completed bitmap is available.




Getting Vectors

Qckvu can return either a bitmap (image) or a stream of vectors representing all of the geometries that would be visible on the screen. The vector option is useful if the client wishes to do its own rendering (for example, overlaying the CAD data over scanned or simulated OPC data ...); the vectors are also useful if the client wishes to manipulate the boundary/path data or even convert the data into another format.

One item to remember is that when requesting vectors, you will only get vectors that would be visible on the screen. Hence it is important to make sure that the various settings for hierarchy display, layer display and filtering are properly set to insure that you get everything you want.



Set_Vector_Unit
controls how QIS outputs data. Data can either be returned in user units (with decimal point) or in DBU (integer).
Set_Get_Vector_Path
controls how QIS returns paths - either with width or converted to outlines.
Set_Reference_Vector_Format
controls how QIS returns vector info - long format or a shorter more compact format.
Set_Reference_Vector_Matrix
Turn this on to get the transformation matrix for structure references (SREFs and AREFs), and the distances between cells for array structure references, instead of scale, rotation and reflection.
Set_Vector_Grandparents
Set on to obtain the grandparent structure, in addition to the parent structure, for all vector data
Set_Vector_Full
Modifies how QIS treats the "window" command. If on, only vectors that completely lie within the specified window are returned. If off, any vector that crosses the window is returned.
Set_Box_Boundary
controls whether the GDSII BOX entity is returned as a boundary or ignored.
Set_Data_by_Layer
Set_Data_By_Layer On/Off. Use this to set whether to load in data in layer order or not.
Get_Vector
instructs QIS to return vectors within the display window
Get_Display_Vector
Instructs QIS to return vectors within the display window. This command is more efficient than Get_Vector because it drops all structure related information not needed to render vectors for display.
Get_GDS_Vector
instructs QIS to return vectors within the display window. This command (unlike Get_Display_Vector) is not affected by the display filter settings or the line type settings.
Get_Data_Vector
instructs QIS to return vectors within the display window (GDSII and OASIS). This command (unlike Get_Display_Vector) is not affected by the display filter settings or the line type settings.
Set_Vertex_Info_Radius
sets the search radius in screen pixels for Get_Vertex_Info.
Get_Vertex_Info
Use to ID entities. Returns a list of vectors whose vertex falls within 4 pixels of the specified coordinate. Use Set_Vertex_Info_Radius to set the searching radius to a different pixel size.
Get_Window_Info
Get all data within the specified window area. (GDSII DBU or UU)
Get_Data_Vector_Windows
Get all data crosses the specified window area (ignore all filters). (GDSII/OASIS DBU or UU)
Get_Data_Vector_Exact_Windows
Get all data clipped the specified window area (ignore all filters). (GDSII/OASIS DBU or UU)
Get_Display_Vector_Windows
Get all data crosses the specified window area taking into account filtering. (GDSII/OASIS DBU or UU)
Get_Display_Vector_Exact_Windows
Get all data clipped the specified window area taking into account filtering. (GDSII/OASIS DBU or UU)




TCP/IP & Handshaking

Loading And Scanning
describes how the client can give a user feedback while QIS is loading and scanning a large GDSII file.
Long List Blocking describes how long lists of structures names is returned in blocks
Progressive Display describes how the client can put up parts of an image as it is drawn
Interrupting Image Calculation describes how the client interrupts image calculation and how to keep track of the returned data.
QIS TCP/IP Port explains how QIS selects the port to use upon start up and how to detect errors
Setting TimeOut Value tells QIS how long to wait before automatically exiting after the client has disconnected, crashed, etc. 
QIS Exit Codes summarizes the Exit Codes that QIS issues when it is first started up




Off Line Preprocessing of GDSII Files

summary_memory_maps
QIS can process a GDSII file "offline" and create a memory map of the scan data and quad tree data. Once these maps are created and saved to disk, QIS can open a GDSII file for display much faster.
Set_Create_Memory_Maps
use this to instruct QIS to create a memory map (quad tree and scan tree) and save it to disk.
Set_Use_Memory_Maps
this flag tells QIS to use an existing memory/scan map to display a stream file. Set this prior to Open_GDSII command.
Set_Memory_Maps_Dir
use this command to define the directory where the memory maps are located.




GDSII Extraction

QIS can be used to extract a GDSII file from the file being viewed. The user specifies the desired window and layers (by turning them on/off.). All data enclosed or crossing the window is extracted. Any data crossing the window is clipped and healed at the edge of the window. The extracted file is flat. The extracted file can be returned via the TCP/IP socket or can be written to disk.

Get_GDSII
extracts a GDSII file from the current specified window and writes it to disk. Use this when the client and QIS are on the same machine and the client can access files.
Get_OASIS
extracts an OASIS file from the current specified window and writes it to disk. Use this when the client and QIS are on the same machine and the client can access files.
Get_GDSII_Tcp
extracts a GDSII file and returns it to the client via TCP/IP socket. Use this when the client is remote from the QIS server and cannot access files on the same machine QIS is running on.
Get_OASIS_Tcp
extracts a OASIS file and returns it to the client via TCP/IP socket. Use this when the client is remote from the QIS server and cannot access files on the same machine QIS is running on.
Save_GDSII_Structure
Saves the current structure (Open_Structure) and all the structures referenced down the hierarchy to the output file.
Save_OASIS_Structure
Saves the current structure (Open_Structure) and all the structures referenced down the hierarchy to the output file.




Hi Resolution Monochrome Bitmap

QIS's internal rasterizer is designed for bitmaps the approximate size of a screen -- up to about 2000 x 1000 pixels. Some imaging and inspection machines need much larger bitmaps -- up to 10K x 10K pixels. To achieve this QIS uses an external high speed monochrome rasterizer.

Get_Hires_Image_Tcp
returns a high resolution (up to 10,000 x 10,000 pixels) monochrome image in TIFF format and returns it to the client via TCP/IP
Get_Hires_Image
returns a high resolution (up to 10,000 x 10,000 pixels) monochrome image in TIFF format and writes it to file.




Editing Functions

Artwork has added editing to QIS starting with version 2.01. Editing requires that the GDSII file be completely loaded into RAM so this may limit the maximum size of a file that can be edited compared to the largest file that can be viewed.

Set_Load_Memory
Default = Off. If editing is desired, this option must be set to On before opening a GDSII file. Loading a file completely into GDSII also speeds up the redraw for panning and zooming but adds to the time required for the initial view.
Reload_GDSII
If a GDSII file was opened but Set_Load_Memory was off, the client can Set_Load_Memory=On and then issue this Reload command to move the data into memory ...
Reload_OASIS
If an OASIS file was opened but Set_Load_Memory was off, the client can Set_Load_Memory=On and then issue this Reload command to move the data into memory ...
Add_Vector
use this to add a "vector" to the database. A "vector" is either a PATH or BOUNDARY (Round boundary also available)...
Set_Add_Vector_Handle
controls whether Add_Vector returns a handle upon adding a vector ...
Set_Vector_Handle
use this flag to instruct QIS to assign each vector (PATH/BOUNDARY) a handle when returning data. Used when the client wishes to perform "editing" functions ...
Delete_Vector
use this command to delete a Boundary/Path vector from the QIS database ...
Undelete_Vector
restores a vector (Path/Boundary) to the QIS database that was previously deleted...
Add_Layer
Add a layer number and data type to data base.
Save_GDSII
Save to a GDSII file.
Save_OASIS
Save to a OASIS file.
Add_Structure
Add a structure with the specified name.
New_GDSII
Create a New GDSII File.
New_OASIS
Create a New OASIS File.
Set_Transformation
Set transformation values to the current structure. Scale, rotation, mirror along X and Y, move along X and Y.
Set_DBU
Sets the grid and the units of the GDSII file.
Set_Resolution
Sets the resolution of the data to a specified number.



Environment Variables and Command Line Options

In order to address problem GDSII and OASIS files, we have built in some debugging tools into QIS. Because of the proprietary nature and size of GDSII/OASIS files, it is not often possible to provide Artwork with the "problem" file. However by the use of environment variables or command line flags, it is possible to generate some file reports that can be sent to the developers to help determine the problem at hand.


File Analysis

QIS_QTSTATS_FILE

set this environment variable to a file name. Collects information about the distribution of data (boundaries, paths,texts) and cell references in the quad tree database built during the loading of a GDSII/OASIS file.



QIS_OASIS_STATS_FILE

set this environment variable to a file name. Collects information about scan memory usage and modal variables memory usage when opening an OASIS file. (GDSII files don't use modal variables ...)



Benchmark Analysis

-bench:/tmp/benchmark.csv

This QIS command line argument collects information about the number of cells, layers, cell references, array cell references, boundaries, boxes, paths, vertices, texts in the GDSII or OASIS file. It also records the wall clock time spent to scan and load the file. The file is a text file in csv format which can be opened in Excel.



Get_QIS_Report

Use this socket command after the GDSII file has been opened to get back information about the number of cells, layers, cell references, array cell references, boundaries, boxes, paths, vertices, texts in the GDSII or OASIS file. It also records the wall clock time spent to scan and load the file.



Socket Monitoring

-portlog

when specified, this command line option generates the file "qis.log_0" in the QIS working directory. This logs all socket communications to and from QIS. This can be helpful in debugging problems between client and server.



Internal Controls

QIS_QT_NUMPERQ

Set this environment variable to a integer > 0. It sets the number of data to be added to a quad tree node or leaf. A larger number will result in faster quad tree building and a more compact quad tree; but with slower area zooming and processing after the file is opened. Default = 32.



QIS_QT_DEPTH

Set this environment variable to a integer > 0 and < 100. This controls how deep the quad tree is to be built. A deeper tree will result in a faster area zoom but it will use more memory and take longer to build. Default is 10.

QIS_FILTER_FACTOR

Set this environment variable to an integer > 0. Use this to adjust the rule to determine whether a cell reference is smaller than the structure display filter. The extents of a cell reference is used for filtering, if the width is smaller but the height is larger, the reference is still considered as filtered out if the height is less than Filter Factor times width. Default =4.

QIS_QT_OUTLINE

set this environment variable to On or Off. If on, a rectangle will be drawn for each quad tree node or leaf while drawing up to the display filter size. Default is Off; this is used primarily to visualize the quad tree.



Misc Settings

QIS_LOAD_TO_MEM

Set this environment variable to On or Off. Default = Off. If On, the entire GDSII database is loaded into memory; which is a requirement if the file is to be "edited." This setting can be overriden by the socket command Set_Load_Memory.

QIS_QT_EMPTY_REF

Set this environment variable to On or Off. Default = Off. If On, QIS will load references to empty cells; if Off, references to empty cells are ignored. This setting can be overriden by the socket command Set_Load_Empty_Ref.



QIS Main Page Documentation Download Rev History Price