[Artwork] / [QisMLib] / [Programmer's Corner]

List of available APIs with QisMLib


List of available APIs with QisMLib QisMLib QisMFile QisMWindowProbeQisMExploder QisMBool QisMClipper QisMExplCounter QisMLog QisMFileOutQisMWinQQisMLayerSynthQisMClipExtractQisMRasterQisMNtrcQisMBoolFilesQisMCorrXQisMHExtractQisMRTCR (GDSII only, WINDOWS only)QisMScriptQisMGerber


QisMLib

Gateway to the QisM system

Header : qismlib.h

Binary : qismlib64.dll / libqism64.so

License : 1 x (11003) per process

Key features

Key classes & operations

ClassOperationDescription
 QisMLib_initialize_onceInitialize the QisM system once at the start of the program to get a handle to the QisMLib API
 QisMLib_close_onceClose the QisM system once at the end of the program
QisMLibLoad_fileCreate a new database from a GDSII/OASIS/DBLOAD file
QisMLibUnload_fileDestroy a database
QisMLibGet_extension_apiGet access to other APIs in the system

QisMFile

API to work with a database created from a GDSII/OASIS file

Header : qismfile.h

Binary : qismlib64.dll / libqism64.so

License : -

Key features

Key classes & operations

ClassOperationDescription
QisMFileLoadCtrlSet_layer_mapFilter/re-map one or more layers during database creation
QisMFileLoadCtrlSet_ignore_textsDrop TEXT data during database creation
QisMFileGet_default_top_cellGet the name of the (default) root cell with the deepest hierarchy and the largest extents
QisMFileGet_cell_listGet a list of cell names in the database
QisMFileGet_top_cell_listGet a list of root cell names in the database
QisMFileGet_cell_children_listGet a list of cell names referenced directly by the given cell
QisMFileGet_cell_extentsGet the extents of the given cell (lower-left, upper-right)
QisMFileGet_layer_listGet a list of layers and datatypes in the database
QisMFileGridGet the size of 1 grid expressed in the file units (um, mm, inch etc.) e.g for a um file, Grid() == 0.001 implies nm resolution
QisMFileUnitsGet the size of 1 grid expressed in meters e.g for a um file with Grid() == 0.001, Units() == 1e-9 (nm)
QisMFileCreate_exploderCreate one instance of the spatial query object (exploder). Requires 1 x (11027) license per call

QisMWindowProbe

API to conduct a probe on a specific view (cell, layers, window, nesting level) of the database to collect statistical information corresponding to a set of user controlled parameters

Header : qismwindowprobe.h

Binary : qismlib64.dll/libqism64.so

License : 1 x (11113) per probe object

Key features

Key classes & operations

ClassOperationDescription
QisMWindowProbeCreate_probeCreate an instance of the probe object
QisMWindowProbeObjSet_probe_paramTurn a specific probe parameter on or off
QisMWindowProbeObjProbe_windowCollect information for the specified window
QisMWindowProbeDataGet_param_infoGet information collected corresponding to a specific parameter
QisMWProbeParam List of parameters to be probed for a given window

QisMExploder

API to run spatial queries and collect data vectors (boundary, path, text, reference) crossing a view of the QisMFile database (cell, layers, window, nesting level)

Header : qismview.h, qismexploder.h

Binary : qismlib64.dll / libqism64.so

License : 1 x (11027) per exploder object

Key features

Key classes & operations

ClassOperationDescription
QisMViewSet_view_cellSet the view cell (name)
QisMViewSet_layers_onShow/hide one or more layers
QisMViewSet_text_onShow/hide TEXT items
QisMViewSet_exact_windowSet a rectangular view window
QisMViewSet_nesting_levelShow ALL or a specific nesting level
QisMExploderSet_convert_paths_to_boundariesConvert paths to boundaries
QisMExploderGet_vector_dataCollect data vectors from the set view (run a spatial query) as a series of callbacks (1 per vector)
QisMExploderV2Get_boundariesGet only polygons from the set view in form of a container
QisMExploderV2Get_cell_referencesGet only reference vectors to a given cell from the set view
QisMExploderV2Get_cell_treeGet the entire sub-tree of a cell in form of reference vectors
QisMNotifyOn_qismt_vectorNotification/callback to receive a data vector

QisMBool

API to perform operations (union, intersection, xor, difference, clipping, sizing etc.) on large sets of polygons

Header : qismbool.h

Binary : qismlib64.dll / libqism64.so

License : 1 x (11047) per boolean object

Key features

Key classes & operations

ClassOperationDescription
QisMBoolCreate_instanceCreate an instance of the boolean object
QisMBoolNew_settingsCreate an instance of the settings object
QisMBoolInstUnionMTUnionize a set of polygons using multiple threads
QisMBoolInstBinaryMTPerform binary operations between two sets of polygons using multiple threads
QisMBoolXFind_connected_setsGroup a set of polygons into multiple sets based on connectivity (touching or intersection)
QisMBoolSettingsSet_clip_windowSet a rectangular clipping window
QisMBoolSettingsSet_max_pointsSet the max. number of points for a polygon in the output (break the ones larger then this)
QisMBoolSettingV2Set_paramSet one of the various parameters that controls the output of the boolean operations

QisMClipper

API clip a set of paths/boundaries against a set of rectangular or polygonal windows

Header : qismclipper.h

Binary : qismlib64.dll / libqism64.so

License : 1 x (11047) per clipper object

Key features

Key classes & operations

ClassOperationDescription
QisMClipperCreate_poly_instanceCreate a clipping object for polygonal clipping windows
QisMClipperCreate_box_instanceCreate a clipping object for rectangular clipping windows
QisMClipperObjClip_boundariesClip a set of boundaries using multiple threads
QisMClipperObjClip_pathClip one path (output is one or more boundaries)
QisMClipperObjBoundary_interactionTest the interaction of a boundary with the specified windows
QisMClipperObjPath_interactionTest the interaction of a path with the specified windows
QisMClipperObjPoint_interactionTest the interaction of a point with the specified windows

QisMExplCounter

API to get exploded (flat) vertex/polygon counts for a given set of layers of a cell of a QisMFile database

Header : qismexplcounter.h

Binary : qismlib64.dll / libqism64.so

License : -

Key features

Key classes & operations

ClassOperationDescription
QisMExplCounterGet_counts_hierarchicalCompute counts using a hierarchy traversal algorithm for fast results
QisMExplCounterGet_counts_fullCompute counts using multiple threads with the option for specifying a window
QisMExplCounterV2Get_counts_nlGet_counts_full with control for nesting level
QisMExplCounterV3Break_window_by_vertnumBreak one or more windows into adjacent, non-overlapping tiles based on the no. vertices contained within

QisMLog

API for thread-safe logging from both inside and outside the QisM system. Requires logging to be enabled/setup during QisMLib_initialize_once

Header : qismlog.h

Binary : qismlib64.dll / libqism64.so

License : -

Key features

Key classes & operations

ClassOperationDescription
QisMLogLog_msgSend a message to all log targets
QisMLogScreen_msgSend a message to stdout/stderr only
QisMLogVerbose_msgSend a message depending on the state of the ACS_VERBOSE environment variable
QisMLogCbOn_qismlog_msgCallback/notification when a log message have been transmitted anywhere in the QisMLib system

QisMFileOut

API for writing polygons to a GDSII/OASIS/TIFF/BMP/RAW file

Header : qismfileout.h

Binary : qismlib64.dll / libqism64.so

License : 1 x (14827) per call required only for writing image files

Key features

Key classes & operations

ClassOperationDescription
QisMFileOutOpen_vector_writerCreate a GDSII/OASIS writer
QisMFileOutOpen_image_writerCreate a TIFF/BMP/RAW writer (requires the QisMRaster extension)
QisMBndryWriterBoundary, BoundariesWrite one or more boundaries

QisMWinQ

API to run a multi-threaded queue of windows on an operation defined by the client

Header : qismwinq.h

Binary : qismlib64.dll / libqism64.so

License : 1 x (11117) per queue

Key features

Key classes & operations

ClassOperationDescription
QisMWinQapiCreate_queueCreate a queue object
QisMWinQRunRun queue in standard mode
QisMWinQRun_hungryRun queue in hungry mode
QisMWinQPre_add_windowAdd one or more windows to the queue before execution begins
QisMWinQWait_for_threadsWait for all the threads to finish
QisMWinQProcProcess_winq_windowCallback to the window processor when a window is available to be processed
QisMWinQLiveLive_add_windowAdd one or more windows to the queue after execution has begun
QisMWinQLiveStopStop the execution of the queue

QisMLayerSynth

API for synthesizing new layers of polygons based on an expression involving operations (union, or, intersection, xor, difference) between existing layers of a QisMFile database

Header : qismlayersynth.h

Binary : qismlayersynth64.dll / qismlayersynth64.so (plug-in/extension to qismlib64.dll/libqism64.so)

License : 1 x (11069) per synthesizer object

Key features

Key classes & operations

ClassOperationDescription
QisMLayerSynthNew_synthesizerCreate new instance of the synthesizer object
QisMLayerSynthObjectSynthesize_layersExecute layer synthesis based on a layer expression
LSynthNotifySynthesized_polygonNotification/callback to receive a synthesized polygon

QisMClipExtract

API for extracting lots of tiny clips of polygons in parallel threads as GDSII/OASIS/TIFF/BMP/RAW files on disk or a collection/raster image in memory from a QisMFile database

Header : qismclipextract.h

Binary : qismclipextract64.dll / qismclipextract64.so (plug-in/extension to qismlib64.dll/libqism64.so)

License : N x (31209) where N = no. clips to extract in parallel (no. extraction threads)

Key features

Key classes & operations

ClassOperationDescription
QisMClipExtractExtract_imageExtract the specified set of windows (clips) as raster images
QisMClipExtractExtract_polygonsExtract the specified set of windows (clips) as polygons
QisMClipExtractV2Extract_synthesized_polygonsExtract the specified set of windows (clips) as polygons synthesized from a layer expression (requires the QisMLayerSynth extension and license)
QisMClipExtractNotifyOn_clipextract_imageNotification/callback to receive a clip as image
QisMClipExtractNotifyOn_clipextract_polygonsNotification/callback to receive a clip as a set of polygons

QisMRaster

API to generate high resolution monochrome raster images (1 bit/pixel) from a QisMFile database

Header : qismraster.h

Binary : qismraster64.dll / qismraster64.so (plug-in/extension to qismlib64.dll/libqism64.so)

License : 1 x (14827) per rasterizer object

Key features

Key classes & operations

ClassOperationDescription
QisMRasterCreate_rasterizerCreate an instance of the rasterizer object
QisMRasterCreate_formatterCreate an instance of the formatter object
QisMRasterV2Open_file_writerOpen a TIFF/BMP/RAW
QisMRasterWriterBoundaryWrite a polygon to the TIFF/BMP/RAW file
QisMFormatterWrite_tiff, Write_bmp , Write_rawWrite the contents of an image buffer to a TIFF/BMP/RAW file
QisMRasterizerRasterize_windowGenerate a raster image (buffer) from a view (cell, layers, window) of the database
QisMRasterizerRasterize_window_synthesizedGenerate a raster image (buffer) from the result of a layer expression over a window of the database (requires the QisMLayerSynth extension and license)
QisMRasterizerRasterize_polygon_setGenerate a raster image (buffer) from a set of polygons
QisMRasterizerV2Overlay_polygon_setOverlay a set of polygons on an existing raster image (buffer)
QisMRasterV3Rasterize_win_queue_mtRasterize a queue of windows with control over no. window threads v/s no. threads per window

QisMNtrc

API to trace nets of connected METAL (conductors) and VIA (dielectric) polygons based on a pre-defined stackup for a given QisMFile database

Header : qismntrc.h, qismstackupdb.h

Binary : qismntrc64.dll / qismntrc64.so (plug-in/extension to qismlib64.dll/libqism64.so)

License : 1 x (11059) per tracer object

Key features

Key classes & operations

ClassOperationDescription
QisMNtrcOpen_traceCreate an instance of a net tracer object
QisMNtrcNew_stackupCreate a new stackup definition
QisMNtrcTracerPoint_traceTrace a net from a single point on a METAL layer
QisMNtrcTracerRegion_traceTrace one or more nets that cross a region of the layout (hot spot)
QisMNtrcNotifyBegin_net, Net_boundary, End_netNotifications/callbacks to receive a net

QisMBoolFiles

API to perform boolean operations (union, or, difference, intersection, xor) over a set of windows between two QisMFile databases

Header : qismboolfiles.h

Binary : qismboolfilesextn64.dll / qismboolfiles64.so (plug-in/extension to qismlib64.dll/libqism64.so)

License : N x (11071) where N = no. windows to be processed in parallel (no. window threads)

Key features

Key classes & operations

ClassOperationDescription
QisMBoolFilesBooleanize_two_filesExecute a boolean operation over a set of windows for the specified databases
QisMBoolFilesClientOn_qismboolfiles_window_mtCallback/notification to receive the results of boolean operations on a single window

QisMCorrX

API to apply corrections (bilinear transformation) on a view of the QisMFile database based on one or more known correction points

Header : qismcorrx.h

Binary : qismcorrx64.dll / qismcorrx64.so (plug-in/extension to qismlib64.dll/libqism64.so)

License : 1 x (11093) per correction object

Key features

Key classes & operations

ClassOperationDescription
QisMCorrXCreate_correction_objectCreate a new instance of the correction object
QisMCorrXObjGet_corrected_polysGet corrected polygons from a view (layers, window) of the database
QisMCorrXObjCorrect_polygonsCorrect polygons in the specified set
QisMCorrXNotifyOn_corrected_polygonsCallback/notification to receive corrected polygons
QisMCorrXObjV2Correct_pointsCompute corrections for an arbitrary set of points
QisMCorrXObjV2Rasterize_corrected_windowGenerate a raster image from the corrected source window

QisMHExtract

API to extract a view of the QisMFile database as a GDSII/OASIS file with hierarchy and clipping

Header : qismhextract.h

Binary : qismhextract64.dll / qismhextract64.so (plug-in/extension to qismlib64.dll/libqism64.so)

License : 1 x (11083) per extractor object

Key features

Key classes & operations

ClassOperationDescription
QisMHExtractCreate_extractorCreate an instance of the extractor object
QisMHExtractorCreate_clipper, Create_box_clipper, Create_poly_clipper, Create_circ_clipperCreate a clipping object containing one or more rectangular, polygonal or circular clipping areas
QisMHExtractorCreate_file_writerOpen a GDSII/OASIS file as a target for extracted cell definitions
QisMHExtractorExtractExtract a view of the database
QisMHExtractTargetOn_extract_begin_cell, On_extract_boundary, On_extract_path, On_extract_text, On_extract_sref, On_extract_aref, On_extract_end_cellCallbacks/notifications to receive the definition for each extracted cell

QisMRTCR (GDSII only, WINDOWS only)

API to generate high resolution monochrome raster images from a view of a QisMFile database with corrections and annotations

To be used in conjunction with SFGen

Header : qismrtcr.h

Binary : qismrtcr64.dll (plug-in/extension to qismlib64.dll)

License :

Key features

Key classes & operations

ClassOperationDescription
QisMRTCRSetup_jobCreate a new RTCR job (source GDSII + corrections + annotations)
QisMRTCRJobCreate_rasterizerCreate an instance of the rasterizer object
QisMRTCRJobGet_raster_imageGenerate a monochrome raster image from the associated job using the associated rasterizer
QisMRTCRJobV2Create_corrx_rasterizerCreate a rasterize to generate raster images from the results of second-level corrections to the source windows

QisMScript

API to add scripting support to any API/feature/operation within the QisM system. The script engine can be invoked within any QisM client application or using a ready-to-use console application -- qismscript64.exe

Key features

Key classes & operations

ClassOperationDescription
QisMScriptRunnerRun_script_command, Run_script_command_vExecute an available script command with the specified arguments
QisMScriptRunnerRun_script_command_fileExecute a text file containing script commands
QisMScriptRunnerGet_script_helpGet a complete list of available commands with usage as a string
QisMScriptRunnerAdd_var, Get_var(From the client application,) define/query a script variable as a name=string_value pair that can be referenced by any subsequent script command
QisMScriptRegisterRegister_commandRegister a command and command handler so that it is available to be executed by the script engine
QisMScriptOn_commandCallback/notification to the registered script handler to execute the a command associated with it
QisMScriptUtilAdd_var, Get_var, Remove(While executing a command,) define/query/delete a script variable as a type,name=object_handle pair that can be referenced by any subsequent script command
QisMScriptUtilLog_msg(While executing a command,) create a log message to be reported back to the user via the QisMLog system

QisMGerber

API to create database from a Gerber source so that it can be used with other QisMLib APIs

Key Features

Key classes & operations

ClassOperationDescription
QisMGerberLoad_gerberCreate database from a Gerber file
QisMGerberFileFile_dbGet a QisMFile handle to use this database with other QisMLib APIs
QisMGerberFileSave_to_gdsiiCreate a GDSII file from the current database

 


ARTWORK CONVERSION SOFTWARE, INC.
417 Ingalls St. Unit C, Santa Cruz, CA 95060 831.426.6163  email: info@artwork.com