[Artwork] / [QisMLib]

QisMSnPUtil Extension

A QisMLib extension to process paint&scratch databases (from Gerber/ODB++)

  • A paint&scratch database is a GDSII database where data is organized into units of paint & scratch polarity that appear in a particular sequence

  • QisMSnPUtil provides tools to work with such databases by --

    • Extracting polygons from any window of such a database as either paint&scratch or positive-only (unionized) polygons

    • Generating a unionized (positive-only) GDSII/OASIS from such a database

    • Generating a unionized (positive-only) GDSII/OASIS from a boolean operation (OR, XOR, AND, DIFF, UNION) between two such databases

QisMSnPUtil ExtensionQisMSnPUnion C++ API (qismsnpunion.h)QisMSnPSpec_pQisMSnPOUnitsQisMSnPONewExpFlg_IPNEGKey_IGNLAYERSKey_AFFINEAdd_AFFINE_TXYAdd_AFFINE_ANGLEAdd_AFFINE_SCALEAdd_AFFINE_SHEARAdd_AFFINE_FLIPKey_CORRXQisMSnPOExplodeKey_THRNUMKey_SLIVERKey_BUTTINGFlg_NOSTRIPESKey_SIZINGKey_DBGFlg_CONVEXKey_LAYERKey_RESERVEKey_MAXVERTFlg_CUTLINESQisMSnPOUnionKey_THRNUM_TILESKey_FORMATVal_FORMAT_OASISKey_LOUTKey_TOPKey_AFFINEAdd_AFFINE_TXYAdd_AFFINE_ANGLEAdd_AFFINE_SCALEAdd_AFFINE_SHEARAdd_AFFINE_FLIPKey_CORRXQisMSnPExplodeCbVersion Control (QisMSnPExplodeCb)On_scratch_or_paint_boundariesOn_scratch_or_paint_boundaryGet_scratch_or_paint_error_msgMETAKEY_LAYER_NAMEMETAKEY_SEQQisMSnPExploderVersion Control (QisMSnPExploder)Get_error_msg (QisMSnPExploder)Get_error_condition (QisMSnPExploder)Get_error_context (QisMSnPExploder)Get_boundariesGet_specQisMSnPExploderV2Get_boundaries_paint_scratchQisMSnPUnionVersion Control (QisMSnPUnion)Get_error_msg (QisMSnPExploder)Get_error_condition (QisMSnPExploder)Get_error_context (QisMSnPExploder)Create_exploderDestroy_exploderUnionize_to_fileQisMSnPUnionV2Booleanize_two_filesBooleanize_two_files OptionsQisMSnPUtil Commandssnputil.create_explodersnputil.destroy_explodersnpexploder.get_boundariessnpexploder.destroy_storesnputil.unionize_to_filesnputil.booleanize_two_filesQisMSnPUnion Licensing (API)QisMSnPUtil Licensing (Script)QisMSnpUtil Version Historyqismsnputil dll 1.4.1 06-2025qismsnputil dll 1.4 19-05-2025qismsnputil dll 1.3 24-07-2024qismsnputil dll 1.2 11-2022qismsnputil dll 1.1 03-2022


QisMSnPUnion C++ API (qismsnpunion.h)

QisMSnPSpec_p

Opaque handle to an object that holds the paint&scratch metadata

QisMSnPOUnits

Acceptable unit specifiers for relevant parameters

QisMSnPONewExp

Parameters that represent information used for creating the QisMSnPExploder

Flg_IPNEG

When used, it indicates that the design has a negative polarity

Key_IGNLAYERS

When used, the specified set of layers (as a comma-separated string) indicates the layers that are to be used for extents calculation but not for it's actual geoemtries (e.g margin around the whole design)

Key_AFFINE

Add_AFFINE_TXY

Add_AFFINE_ANGLE

Add_AFFINE_SCALE

Add_AFFINE_SHEAR

Add_AFFINE_FLIP

Apply affine transformation to all output polygons

Key_CORRX

QisMSnPOExplode

Parameters that control the explosion

Key_THRNUM

Specify the number of threads to be used for boolean computations

Key_SLIVER

Specify the sliver value for filtering tiny output polygons

Key_BUTTING

Convert polygons with holes to butting polygons with a specific overlap

Flg_NOSTRIPES

Remove partitioning lines from the output

Key_SIZING

Specify sizing along X and Y

Key_DBG

Generate debug data for daignostics & troubleshooting

Flg_CONVEX

Ensures that each output polygon is convex in X and Y

Key_LAYER

Sets a target layer:datatype for the output polygons

Key_RESERVE

Pre-allocate memory to store polygon data

Key_MAXVERT

Specify the max. num vertices for any polygon (default 8190)

Flg_CUTLINES

When specified, polygons with holes will be converted into a single polygon with cutlines

QisMSnPOUnion

Parameters that flavor the whole db unionization

Key_THRNUM_TILES

Set the number of tiles to be processed in parallel

Key_FORMAT

Val_FORMAT_OASIS

Output unionized data as an OASIS file

Key_LOUT

Specify a layer,datatype for output polygons

Key_TOP

Set the output (top) cell name

Key_AFFINE

Add_AFFINE_TXY

Add_AFFINE_ANGLE

Add_AFFINE_SCALE

Add_AFFINE_SHEAR

Add_AFFINE_FLIP

Apply affine transformation to all output polygons

Key_CORRX

QisMSnPExplodeCb

Callback for receiving polygons from the QisMSnPExploderV2

Version Control (QisMSnPExplodeCb)

Cast to a pointer of another version in the class hierarchy (base/derived)

On_scratch_or_paint_boundaries

On_scratch_or_paint_boundary

Callback to receive one or more polygons

Get_scratch_or_paint_error_msg

Return an error message string to explain the reason for terminating the explosion

METAKEY_LAYER_NAME

METAKEY_SEQ

Represents parameters for the metadata associated with paint and scratch polygons (see On_scratch_or_paint_boundaries)

QisMSnPExploder

API to generate unionized (paint-only) polygons from any window of the paint & scratch db

Version Control (QisMSnPExploder)

Cast to a pointer of another version in the class hierarchy (base/derived)

Get_error_msg (QisMSnPExploder)

Get_error_condition (QisMSnPExploder)

Get_error_context (QisMSnPExploder)

Get_boundaries

Get the paint-only (flat) boundaries for a window of a paint & scratch db

Get_spec

Get the paint & scratch specification held/computed by this object

QisMSnPExploderV2

Extension V2 for QisMSnPExploder

Get_boundaries_paint_scratch

Get boundaries from a window of a paint & scratch database as ordered sets of paint & scratch polygons

QisMSnPUnion

API to perform unionization (flattening) of the paint & scratch data and therefore creating GDSII-style paint-only data

Version Control (QisMSnPUnion)

Cast to a pointer of another version in the class hierarchy (base/derived)

Get_error_msg (QisMSnPExploder)

Get_error_condition (QisMSnPExploder)

Get_error_context (QisMSnPExploder)

Create_exploder

Destroy_exploder

Create a Paint&Scratch exploder object

Unionize_to_file

Perform whole design unionization and write the output to a file on disk

QisMSnPUnionV2

Extension to QisMSnPUnion

Booleanize_two_files

Perform boolean operation between two files

Booleanize_two_files Options

QisMSnPUtil Commands

snputil.create_exploder

snputil.destroy_exploder

snpexploder.get_boundaries

snpexploder.destroy_store

snputil.unionize_to_file

snputil.booleanize_two_files

QisMSnPUnion Licensing (API)

Product name : QisMSnPUnion License code : 11527

QisMSnPUtil Licensing (Script)

Product name : QisMSnPUtil License code : 11527

QisMSnpUtil Version History

qismsnputil dll 1.4.1 06-2025

qismsnputil dll 1.4 19-05-2025

qismsnputil dll 1.3 24-07-2024

qismsnputil dll 1.2 11-2022

qismsnputil dll 1.1 03-2022


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

Last Updated -- Thu Jul 17 16:15:01 UTC 2025