Command
QisLib_GetGDSII

QisLib_GetGDSII


Function:
	int QisLib_GetGDSII(const char* OutFileName);

Inputs:
	OutFileName: Name and path of the GDSII file to be created.

Return:
	success: 0
	failure: one of the following values :

Errors:
	-1: QisLib has not been initialized.
	-2: The specified path is invalid (null).
	-3: Cannot save GDSII output file with the same name and path as input file.
	-4: Unable to create output GDSII file.
	-5: Cannot extract GDSII data from memory maps.
	-6: File open in progress, operation not permitted.

Description:
	- This function can be used to extract GDSII/OASIS data in the current window to a
	flat GDSII file with no hierarchy.
	- The extracted GDSII file does not contain any cell hierarchy even if the input file
	is hierarchical. The top cell is called 'TOP'. The data is clipped at the window
	boundary.
	- All display filters are disregarded while creating the GDSII file.
	- Output entities are boundaries. Any paths are converted into boundaries unless they
	have zero width in which case they are ignored.
	- Data is output on the same layer as the input. However QisLib_SetOutputLayerMap can
	be used to control the mapping of the input layers to different output layers.
	- If the user's program needs to set a particular window for extraction, it should use
	QisLib_SetExactWindow since QisLib_SetExactWindow makes no adjustments to the window
	extents based on the image size aspect ratio. However, the user's program must also
	make sure to restore the original window extents once the extraction is done.
	- This function will not work if the GDSII file was opened directly from memory maps
	using QisLib_OpenMemoryMaps.
	- This function also works when an OASIS file is opened.
	- This function cannot be used to write to the GDSII/OASIS file currently opened.
	OutFileName must be different from the name or path of the currently opened
	GDSII/OASIS file.
	- By default, the grid and units values of the extracted GDSII file are same as the
	input GDSII file. However, different output grid and unit can be controlled using
	the QisLib_SetDBU and QisLib_SetResolution functions.
	- During extraction from a GDSII file, boxes are converted into boundaries if
	QisLib_SetBoxBoundary is on. If QisLib_SetBoxBoundary is off, boxes are not
	extracted.
	- QisLib_GetGDSII output is affected by current settings such as layer on/off, nesting
	level, array mode etc.
	- It is not necessary to open the input file in edit mode to use this function.
	- QisLib does not emit any progress message even if a progress message callback
	function has been set using QisLib_SetProgressMessageCallback.
	- If this operation needs to be cancelled, use QisLib_Stop. This can only be done if
	QisLib_SetProcessEvents is turned on. Also, for Unix/Linux, the program's
	application context must be passed to QisLib_InitLib.

References:
QisLib_OpenMemoryMaps
QisLib_SetBoxBoundary
QisLib_SetExactWindow
QisLib_SetOutputLayerMap
QisLib_SetDBU
QisLib_SetResolution
QisLib_SetProgressMessageCallback
QisLib_Stop