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. |
|
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 |