Command
QisLib_SaveGDSII

QisLib_SaveGDSII


Function:
	int QisLib_SaveGDSII(const char* OutFileName);

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

Return:
	success: 0
	failure: one of the following values :
Errors:
	1: No GDSII file has been opened.
	2: Cannot save GDSII file from memory maps.
	-1: QisLib has not been initialized.
	-2: Internal database error occurred while preparing to save the GDSII file.
	-3: No GDSII file loaded in memory.
	-4: Internal memory failure occurred while saving GDSII file.
	-5: Cannot call this function again while saving to a file.
	-6: Disk error occurred while writing to the GDSII file.
	-7: Internal error occurred while performing save operation.
	-8: The specified input is invalid (null).
	-9: File open in progress, operation not permitted.

Description:
	- This function can be used to save a GDSII file opened in edit mode
	(QisLib_SetLoadMemory on) to another GDSII file.
	- This function will work only if the input GDSII file has been opened in edit mode.
	(QisLibSetLoadMemory was on during QisLib_OpenGDSII or a new GDSII file was created
	using QisLibNewGDSII) It will not work for OASIS files.
	- QisLib_SaveGDSII will also fail if the GDSII file was opened directly from memory
	maps using QisLib_OpenMemoryMaps.
	- Any changes made to the polygons, layers or cells will be reflected.
	- The cell hierarchy is preserved during this operation.
	- This command does not save settings such as layer on/off, nesting level, array mode,
	etc.
	- 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.
	- The data in the output file may not be same as the input even if no changes are
	made. e.g. The order of vertices may be different. Depending on the GDSII chunk
	size, the number of bits padded at the end of the file may be different. Header
	information, font information, reference libraries, etc., may also be different.
	- If a progress message callback function has been set using
	QisLib_SetProgressMessageCallback, QisLib updates the file save percentage to the
	user program while this function is executing.
	- Boxes are saved as boxes regardless of the QisLib_SetBoxBoundary setting.
	- The Grid and Unit values of the output GDSII file can be controlled by using
	QisLib_SetDBU and QisLib_SetResolution. By default, these values will be same as the
	input GDSII file.
	- 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_SetOutputLayerMap
QisLib_OpenMemoryMaps
QisLib_SetLoadMemory
QisLib_NewGDSII
QisLib_SetBoxBoundary
QisLib_SetDBU
QisLib_Stop
QisLib_SetResolution