[Artwork] / [QisMLib] / [Programmer's Corner]
QisMLib is a collection of C++ APIs to work with CAD designs in form of GDSII/OASIS files. It allows an application to do the following:
Create one or more database objects from GDSII/OASIS files on disk
Get structural information about the design such as cells, layers, cell hierarchy etc.
Run one or more (multi-threaded) spatial queries (explosions) over a view of the design (cell, layers, window, nesting level) and collect data vectors (boundaries, paths, texts, single and array cell references) crossing that view
Perform advanced multi-threaded post-processing with the design such as :
- Polygonal operations (union, difference, intersection, xor, clipping, sizing, convexing etc.)
- Create new layers from an expression of boolean operations between existing layers
- Tracing nets of connected polygons on METAL and VIA layers
- Generate high resolution monochrome bitmaps
- Extract portions of the design as GDSII/OASIS with various clipping and filtering options
- Apply homogeneous and bi-linear transformations (corrections)
- Boolean operations between two or more designs
- Colored graphical rendering to GIF, XPM files or directly to client windows (Window/MFC, Linux/Motif)
- Custom post-processing functions as per the needs of the client application
QisMLib
API serves as the gateway to the system. It allows an application to create one or more databases from a GDSII/OASIS file and provides access to other (extended) APIs in the systemQisMFile
API provides an interface to work with that databaseQisMExploder
API allows an application to run spatial queries on a view of the database (cell, layers, window, nesting level) to collect data vectors (boundaries, paths, texts, cell references) crossing that viewQisMBool
API provides functions to perform multi-threaded boolean operations (union, difference, intersection, xor) as well as other operations (clipping, sizing, convexing) on large sets of polygonsQisMLib_initialize_once
)EXTENSION={extension_dll_path}
where the path MUST be the absolute path of the corresponding DLL/SO#
is treated as a comment and ignoredQISM_ARG_USECFG
initialization argument to QisMLib_initialize_once
. See qismlib.h for detailsGet_extension_report
method of QisMLib
provides a report of the extensions loaded as well as any errors/warnings that may have occurred during the loading process