next up previous contents index
Next: Main Functions 1 Up: xicmanual Previous: Help System   Contents   Index

Interface Functions

There is a growing library of user interface functions which control various aspects of Xic for use in scripts.

Functions that manipulate objects in the database use a coordinate system based in microns (1 micron usually equals 1000 database units). All coordinates are real values.

There are two levels of run-time error reporting. For serious errors, a message is emitted to the controlling terminal, and the script terminates. Most interface functions will generate this type of error only in response to bad arguments, meaning usually arguments of the wrong type. Less serious errors simply cause the function to return, returning a value that indicates that the operation was unsuccessful. Many of the functions return 1 if successful, or 0 if not successful. In some cases where a string is normally returned, a null string return indicates an error occurred. It is up to the user to test the return values for success or failure.

When the documentation specifies that a null string value is acceptable as a function argument, the value zero can be passed instead of a string variable. The token NULL, which is predefined as 0, can be used equivalently.

The tables below list the collections of interface functions presently available, by category and sub-category. Most of these functions return a value. In the descriptions, if a value is returned, the type, in parentheses, is indicated ahead of the function name.

The first group of main module functions:

Main Functions 1
Current Cell
Edit(name, symname) Edit cell
OpenCell(name, symname, curcell) Read file into memory
TouchCell(cellname, curcell) Create cell in memory
RegisterSubMasters(archive) Pre-load pcell sub-masters to resolve as archive is read
Push(object_handle) Make a subcell the current cell
PushElement(object_handle, xind, yind) Make an arrayed subcell element the current cell
Pop() Make parent cell the current cell
NewCellName() Return empty new cell name
CurCellName() Return current cell name
TopCellName() Return cell name at top of editing hierarchy
FileName() Return file name for current cell
CurCellBB(array) Return current cell bounding box
SetCellFlag(cellname, flagname, set) Set the state of a cell flag
GetCellFlag(cellname, flagname) Get cell flag state
Save(newname) Save to disk
UpdateNative(dir) Save modified hierarchy cells as native
Cell Info
CellBB(cellname, array [, symbolic]) Obtain cell bounding box
ListSubcells(cellname, depth, array, incl_top) List subcells in area to depth
ListParents(cellname) List instantiating cells
InitGen() Return handle to subcell name list
CellsHandle(cellname, depth) Return handle to subcell name list
GenCells(handle) Return name from name list
Database
Clear(cellname) Delete cells from memory
ClearAll(clear_tech) Delete all cells and reinitialize
IsCellInMem(cellname) Check if cell is in memory
IsFileInMem(filename) Check if cell from file is in memory
NumCellsInMem() Count cells in memory
ListCellsInMem(options_str) List names of cells in memory
ListTopCellsInMem() List names of top-level cells in memory
ListModCellsInMem() List names of modified cells in memory
ListTopFilesInMem() List source files of top-level cells in memory
Symbol Tables
SetSymbolTable(tabname) Switch to new or existing symbol table
ClearSymbolTable(destroy) Clear or destroy current symbol table
CurSymbolTable() Return the name of the current symbol table
Display
Window(x, y, width, win) Set display window view
GetWindow() Return window containing pointer
GetWindowView(win, array) Return window view area coordinates
GetWindowMode(win) Return window display mode
Expand(win, string) Set expansion status
Display(display_string, win_id, l, b, r, t) Exportable rendering service
FreezeDisplay(freeze) Turn off/on graphics screen updates
Redraw(win) Redraw the window
Exit
Exit() Exit script
Halt() Exit script
Annotation
AddMark(type, arguments ...) Show a user-specified mark
EraseMark(id) Erase a mark
DumpMarks(filename) Dump current cell marks to file
ReadMarks(filename) Read marks from file
Ghost Rendering
PushGhost(array, numpts) Register ghost-drawn polygon
PushGhostBox(left, bottom, right, top) Register ghost-drawn box
PushGhostH(object_handle, all) Register ghost-drawn outlines
PopGhost() Unregister ghost-drawn figure
ShowGhost(type) Show ghost-drawn figures
Graphics
GRopen(display, window) Open a graphics context
GRcheckError() Return graphics error status
GRcreatePixmap(handle, width, height) Return a new pixmap id
GRdestroyPixmap(handle, pixmap) Free pixmap
GRcopyDrawable(handle, dst, src, xs, ys, ws, hs, x, y) Copy area between drawables
GRdraw(handle, l, b, r, t) Render cell
GRgetDrawableSize(handle, drawable, array) Return size of drawable
GRresetDrawable(handle, drawable) Switch drawable in context
GRclear(handle) Clear window
GRpixel(handle, x, y) Draw pixel
GRpixels(handle, array, num) Draw pixels
GRline(handle, x1, y1, x2, y2) Draw line
GRpolyLine(handle, array, num) Draw path
GRlines(handle, array, num) Draw lines
GRbox(handle, l, b, r, t) Draw box
GRboxes(handle, array, num) Draw boxes
GRarc(handle, x0, y0, rx, ry, theta1, theta2) Draw arc
GRpolygon(handle, array, num) Draw polygon
GRtext(handle, text, x, y, flags) Draw text
GRtextExtent(handle, text, array) Return text size
GRdefineColor(handle, red, green, blue) Return color code
GRsetBackground(handle, pixel) Set default background color
GRsetWindowBackground(handle, pixel) Set window background color
GRsetColor(handle, pixel) Set foreground color
GRdefineLinestyle(handle, index, mask) Define a line style
GRsetLinestyle(handle, index) Set current line style
GRdefineFillpattern(handle, index, nx, ny, array_string) Define a fill pattern
GRsetFillpattern(handle, index) Set current fill pattern
GRupdate(handle) Update rendering
GRsetMode(handle, mode) Set drawing mode
Hard Copy
HClistDrivers() Return list of available drivers
HCsetDriver(driver) Set current driver
HCgetDriver() Return current driver name
HCsetResol(resol) Set current driver resolution
HCgetResol() Return current driver resolution
HCgetResols(array) Return available driver resolutions
HCsetBestFit(best_fit) Set ``best fit'' mode
HCgetBestFit() Return ``best fit'' mode
HCsetLegend(legend) Set ``legend'' mode
HCgetLegend() Return ``legend'' mode
HCsetLandscape(landscape) Set ``landscape'' mode
HCgetLandscape() Return ``landscape'' mode
HCsetMetric(metric) Set ``metric'' mode
HCgetMetric() Return ``metric'' mode
HCsetSize(x, y, w, h) Set rendering area
HCgetSize(array) Return rendering area
HCshowAxes(style) Set axes display style
HCshowGrid(show, mode) Set grid displayed or not
HCsetGridInterval(spacing, mode) Set grid spacing
HCsetGridStyle(linemod, mode) Set grid line style
HCsetGridCrossSize(xsize, mode) Set grid ``dot'' cross size
HCsetGridOnTop(on_top, mode) Draw grid above or below geometry
HCdump(l, b, r, t, filename, command) Generate output
HCerrorString() Retrun error message
HClistPrinters() List MS Windows printers
HCmedia(index) Set MS Windows page size
Keyboard
ReadMapfile(mapfile) Read a keyboard mapping file
Libraries
OpenLibrary(path_name) Open a library file
CloseLibrary(path_name) Close an open library
OpenAccess
OaVersion() Get OpenAccess version string
OaIsLibrary(libname) Check if argument is a library
OaListLibraries() Return list of libraries
OaListLibCells(libname) Return list of cells in library
OaListCellViews(libname, cellname) Return list of views in cell
OaIsLibOpen(libname) Check if library is open
OaOpenLibrary(libname) Open an OpenAccess library
OaCloseLibrary(libname) Close an open OpenAccess library
OaIsOaCell(libname, open_only) Check if cell can be resolved
OaIsCellInLib(libname, cellname) Check if cell exists in library
OaIsCellView(cellname, viewname, open_only) Check if view exists in cell
OaIsCellViewInLib(libname, cellname, viewname) Check if view of cell exists in cell
OaCreateLibrary(libname, techlibname) Create new library
OaBrandLibrary(libname, branded) Set or unset writability from Xic
OaIsLibBranded(libname) Check if library writable from Xic
OaDestroy(libname, cellname, viewname) Destroy library, cell, or view
OaLoad(libname, cellname) Load cell into Xic
OaReset() Clear table of cells already loaded
OaSave(libname, allhier) Save current cell to OpenAccess
OaAttachTech(libname, techlibname) Attach the technology from another library
OaGetAttachedTech(libname) Return the name of attached library
OaHasLocalTech(libname) Check if library has local tech database
OaCreateLocalTech(libname) Create a local tech database in library
OaDestroyTech(libname, unattach_only) Destroy/remove technology object
Mode
Mode(window, mode) Set physical or electrical mode
CurMode(window) Return current mode
Prompt Line
StuffText(string) Register text for future access
TextCmd(string) Execute a prompt line command
GetLastPrompt() Return most recent prompt line message
Scripts
ListFunctions() Return list of library file functions
Exec(script) Execute a script
SetKey(password) Set the current password for script decryption
HasPython() Return true if Python is available
RunPython(command) Run a Python script
RunPythonModFunc(module, function [, arg ...]) Execute a Python module function
ResetPython() Reset the Python interpreter
HasTcl() Return true if Tcl is available
HasTk() Return true if Tcl and Tk are available
RunTcl(command [, arg ...]) Run a Tcl/Tk script
ResetTcl() Reset the Tcl/Tk interpreter
HasGlobalVariable(globvar) Test if global variable
GetGlobalVariable(globvar) Return value of global variable
GetGlobalVariable(globvar, value) Set value of global variable
Technology File
GetTechName() Return technology name
GetTechExt() Return technology file extension
SetTechExt(extension) Define effective technology file extension
TechParseLine(line) Parse text in technology file format
TechGetFkeyString(fkeynum) Return function key encoding string
TechSetFkeyString(fkeynum, string) Set function key encoding
Variables
Set(name, string) Set a variable
Unset(name) Unset a variable
PushSet(name, string) Set a variable, allow revert
PopSet(name) Revert PushSet
SetExpand(string, use_env) Perform variable substitution
Get(name) Return variable contents
JoinLimits(flags) Set or remove join operation limits
Xic Version
VersionString() Return current Xic version

The second group of main module functions:

Main Functions 2
Arrays
ArrayDims(out_array, array) Get array dimensions
ArrayDimension(out_array, array) Get array dimensions
GetDims(array, out_array) Get array dimensions
DupArray(dest_array, src_array) Copy an array
SortArray(array, size, descend, indices) Sort array elements
Bitwise Logic
ShiftBits(bits, val) Shift bit field
AndBits(bits1, bits2) AND operation
OrBits(bits1, bits2) OR operation
XorBits(bits1, bits2) XOR operation
NotBits(bits) NOT operation
Error Reporting
GetError() Return error message
AddError(string) Save error string
GetLogNumber() Return current message index
GetLogMessage(message_num) Return string for message index
AddLogMessage(string, error) Add message to log
Generic Handle Functions
NumHandles() Returns the number of active handles
HandleContent(handle) Returns count of list items
HandleTruncate(handle, count) Truncate a list of items
HandleNext(handle) Advance list to next item
HandleDup(handle) Duplicate a handle and list
HandleDupNitems(handle, count) Duplicate a handle and list, truncating list
H(scalar) Create temporary handle from scalar
HandleArray(handle, array) Write an array of handles to list elements
HandleCat(handle1, handle2) Add handle2 list to end of handle1 list
HandleReverse(handle) Reverse list order
HandlePurgeList(handle1, handle2) Remove from second list items in first
Close(handle) Close a handle
CloseArray(array, size) Close an array of handles
Memory Management
FreeArray(array) Free memory used by array
CoreSize() Return kilobytes used by program
Script Variables
Defined(variable) Check if variable is defined
TypeOf(variable) Return variable type
Path Manipulation and Query
PathToEnd(path_name, dir) Modify search path
PathToFront(path_name, dir) Modify search path
InPath(path_name, dir) Check if directory is in search path
RemovePath(path_name, dir) Remove directory from the search path
Regular Expressions
RegCompile(regex, case_insens) Compile regular expression
RegCompare(regex_handle, string, array) Regular expression evaluation
RegError(regex_handle) Return error string
String List Handles
StringHandle(string, sepchars) Return handle to string tokens
ListHandle(arglist) Return handle to string arguments
ListContent(stringlist_handle) Return referenced string
ListReverse(stringlist_handle) Reverse order of strings in list
ListNext(stringlist_handle) Return referenced string and advance to next
ListAddFront(stringlist_handle, string) Add string to list
ListAddBack(stringlist_handle, string) Add string to list
ListAlphaSort(stringlist_handle) Sort string list
ListUnique(stringlist_handle) Remove duplicates from list
ListFormatCols(stringlist_handle, columns) Format strings into columns
ListConcat(stringlist_handle, sepchars) Create single string from list
ListIncluded(stringlist_handle, string) Check if string is in list
String Manipulation and Conversion
Strcat(string1, string2) String concatenation
Strcmp(string1, string2) String comparison
Strncmp(string1, string2, n) String comparison, fixed length
Strcasecmp(string1, string2) String comparison, case insensitive
Strncasecmp(string1, string2, n) String comparison, case insensitive, fixed length
Strdup(string) String copy
Strtok(str, sep) String tokenization
Strchr(string, char) Return pointer to first instance of character
Strrchr(string, char) Return pointer to last instance of character
Strstr(string, substring) Return pointer to first instance of substring
Strpath(string) Return pointer to filename in path
Strlen(string) Return length of string
Sizeof(arg) Return string length or array size
ToReal(string) Convert string to number
ToString(real) Convert number to string
ToStringA(real, digits) Convert number to string using SPICE notation
ToFormat(format, arg_list) Print variables according to format string
ToChar(integer) Convert character constant to string representation
Current Directory
Cwd(path) Set current directory
Pwd() Return current directory
Date and Time
DateString() Return the date/time
Time() Return system-encoded time
MakeTime(array, gmt) Create system-encoded time from values
TimeToString(time, gmt) Return string from system-encoded time
TimeToVals(time, gmt, array) Parse system-encoded time
MilliSec() Return elapsed time in milliseconds
StartTiming(array) Initialize resource timing
StopTiming(array) Obtain resource times
File System Interface
Glob(pattern) Perform global expansion
Open(file, mode) Open a file for read/write
Popen(command, mode) Open a process for read/write
Sopen(host, port) Open a socket for read/write
ReadLine(maxlen, file_handle) Read a line of text from a file
ReadChar(file_handle) Read a character from a file
WriteLine(string, file_handle) Write a line of text to a file
WriteChar(c, file_handle) Write a character to a file
TempFile(prefix) Create a temporary file name
ListDirectory(path, filter) Return handle to list of file names
MakeDir(path) Create directory tree
FileStat(path, array) Get file/directory statistics
DeleteFile(path) Destroy file or empty directory
MoveFile(from_path, to_path) Move (rename) file
CopyFile(from_path, to_path) Copy file
CreateBak(path) Move file to backup
Md5Digest(path) Return file digest string
Socket and Xic Client/Server Interface
ReadData(size, skt_handle) Read data from a socket
ReadReply(retcode, skt_handle) Read a message from the Xic server
ConvertReply(message, retcode) Parse Xic server response
WriteMsg(string, skt_handle) Write a message to a socket
System Command Interface
Shell(command) Execute a shell command
System(command) Execute a shell command
GetPID(parent) Return process ID
Menu Buttons
SetButtonStatus(menu, button, set) Set button toggle status
GetButtonStatus(menu, button) Return button toggle status
PressButton(menu, button) Synthesize a button press
BtnDown(num, state, x, y, widget) Synthesize a button press
BtnUp(num, state, x, y, widget) Synthesize a button release
KeyDown(keysym, state, widget) Synthesize a key press
KeyUp(keysym, state, widget) Synthesize a key release
Mouse Input
Point(array) Wait for a mouse button press
Selection() Wait for key press, allow selections
Graphical Input
PopUpInput(message, default, buttontext, multiline) Pop up text input dialog
PopUpAffirm(message) Pop up yes/no dialog
PopUpNumeric(message, initval, minval, maxval, delta, numdgt) Pop up numeric entry dialog
Text Input
AskReal(prompt, default) Prompt for a number from prompt line
AskString(prompt, default) Prompt for a string from prompt line
AskConsoleReal(prompt, default) Prompt for a number from console
AskConsoleString(prompt, default) Prompt for a string from console
GetKey() Wait for key press
Text Output
SepString(string, repeat) Create separation or indentation string
ShowPrompt(arg_list) Show arguments on prompt line
SetIndent(level) Set indentation level for printing
SetPrintLimits(num_array_elts, num_zoids) Limit number of array values and trapezoids printed
Print(arg_list) Print arguments to console window
PrintLog(file_handle, arg_list) Print arguments to file
PrintString(arg_list) Print arguments to a string
PrintStringEsc(arg_list) Print arguments to a string
Message(arg_list) Print arguments to pop-up window
ErrorMsg(arg_list) Print arguments to pop-up error window
TextWindow(fname, readonly) Show file in text editor

The third group of main module functions:

Main Functions 3
Grid and Edge Snapping
SetMfgGrid(mfg_grid) Set the manufacturing grid
GetMfgGrid() Return the manufacturing grid
SetGrid(interval, snap, win) Set grid parameters for window
GetGridInterval(win) Return fine grid spacing
GetSnapInterval(win) Return the snap grid spacing
GetGridSnap(win) Return grid snap number
ClipToGrid(coord, win) Move coord to grid
SetEdgeSnappingMode(win, mode) Set edge snapping scope for window
SetEdgeOffGrid(win, off_grid) Enable off-grid edge snapping in window
SetEdgeNonManh(win, non_manh) Enable non-Manhattan edge snapping in window
SetEdgeWireEdge(win, wire_edge) Snap to wire edges in window
SetEdgeWirePath(win, wire_path) Snap to wire path in window
GetEdgeSnappingMode(win) Return edge snapping mode for windoiw
GetEdgeOffGrid(win) Return off-grid edge snapping flag for window
GetEdgeNonManh(win) Return non-Manhattan edge snapping flag for window
GetEdgeWireEdge(win) Return wire edge snapping flag for window
GetEdgeWirePath(win) Return wire path snapping flag for window
SetRulerSnapToGrid(snap) Set ruler command grid snapping state
SetRulerEdgeSnappingMode(mode) Set ruler command edge snapping mode
SetRulerEdgeOffGrid(off_grid) Set ruler command edge snapping off-grid state
SetRulerEdgeNonManh(non_manh) Set ruler command edge snapping non-Manhattan state
SetRulerEdgeWireEdge(wire_edge) Set ruler command edge snapping wire-edge state
SetRulerEdgeWirePath(wire_path) Set ruler command edge snapping wire-path state
GetRulerSnapToGrid() Return ruler command grid snapping state
GetRulerEdgeSnappingMode() Return ruler command edge snapping mode
GetRulerEdgeOffGrid() Return ruler command edge snapping off-grid state
GetRulerEdgeNonManh() Return ruler command edge snapping non-Manhattan state
GetRulerEdgeWireEdge() Return ruler command edge snapping wire-edge state
GetRulerEdgeWirePath() Return ruler command edge snapping wire-path state
Grid Style
ShowGrid(on, win) Set grid visibility in window
ShowAxes(style, win) Set axes style in window
SetGridStyle(style, win) Set grid line style
GetGridStyle(win) Return grid line style
SetGridCrossSize(xsize, win) Set grid ``dot'' cross size
GetGridCrossSize(win) Return grid ``dot'' cross size
SetGridOnTop(ontop, win) Set grid on top of geometry
GetGridOnTop(win) Return grid top/bottom status
SetGridCoarseMult(mult, win) Set coarse grid spacing multiple
GetGridCoarseMult(win) Return coarse grid spacing multiple
SaveGrid(regnum, win) Save grid parameters in register
RecallGrid(regnum, win) Recall grid parameters from register
Current Layer
GetCurLayer() Return name of current layer
GetCurLayerIndex() Return index of current layer
SetCurLayer(name) Set current layer, layer must exist
SetCurLayerFast(name) As SetCurLayer, but no screen update
NewCurLayer(name) Set current layer, create if necessary
GetCurLayerAlias() Return alias name of current layer
SetCurLayerAlias(alias) Set alias name of current layer
GetCurLayerDescr() Return description of current layer
SetCurLayerDescr(descr) Set description of current layer
Layer Table
LayersUsed() Return number of layers in table
AddLayer(name, index) Add a new layer
RemoveLayer(stdlyr) Remove a layer
RenameLayer(oldname, newname) Give a new name to a layer
LayerHandle(down) Return a handle to a list of layer names
GenLayers(stringlist_handle) Return a layer name and advance list to next
GetLayerPalette(regnum) Return list of palette layers
SetLayerPalette(list, regnum) Save list of palette layers
Layer Database
GetLayerNum(name) Return component layer number for name
GetLayerName(num) Return component layer name for number
IsPurposeDefined(name) Return true if name matches a purpose
GetPurposeNum(name) Return purpose number for name
GetPurposeName(num) Return purpose name for number
Layers
GetLayerLayerNum(stdlyr) Return the component layer number for layer
GetLayerPurposeNum(stdlyr) Return the purpose number for layer
GetLayerAlias(stdlyr) Return the alias for layer
SetLayerAlias(stdlyr, alias) Set the alias for layer
GetLayerDescr(stdlyr) Return the description for layer
SetLayerDescr(stdlyr, descr) Set the description for layer
IsLayerDefined(lname) Return nonzero if layer exists with given name
IsLayerVisible(stdlyr) Return true if layer is visible
SetLayerVisible(stdlyr, visible) Set layer visibility flag
IsLayerSelectable(stdlyr) Return true if layer is selectable
SetLayerSelectable(stdlyr, selectable) Set layer selectability flag
IsLayerSymbolic(stdlyr) Return true if layer is symbolic
SetLayerSymbolic(stdlyr, symbolic) Set layer symbolic flag
IsLayerNoMerge(stdlyr) Return true if layer has no_merge set
SetLayerNoMerge(stdlyr, nomerge) Set layer no_merge flag
GetLayerMinDimension(stdlyr) Return minimum dimension
GetLayerWireWidth(stdlyr) Return default wire width
AddLayerGdsOutMap(stdlyr, layer_num, datatype) Add GDSII output layer mapping
RemoveLayerGdsOutMap(stdlyr, layer_num, datatype) Remove GDSII output layer mapping
AddLayerGdsInMap(stdlyr, string) Add GDSII input layer mapping
ClearLayerGdsInMap(stdlyr) Clear GDSII input layer mapping
SetLayerNoDRCdatatype(stdlyr, datatype) Set GDSII NoDRC datatype
Layers - Extraction Support
SetLayerExKeyword(stdlyr, string) Set extraction keyword/value of layer
SetCurLayerExKeyword(string) Set extraction keyword/value of current layer
RemoveLayerExKeyword(stdlyr, keyword) Remove extraction keyword spec from layer
RemoveCurLayerExKeyword(keyword) Remove extraction keyword spec from current layer
IsLayerConductor(stdlyr) Return nonzero for Conductor
IsLayerRouting(stdlyr) Return nonzero for Routing
IsLayerGround(stdlyr) Return nonzero for GroundPlane
IsLayerContact(stdlyr) Return nonzero for Contact
IsLayerVia(stdlyr) Return nonzero for Via
IsLayerViaCut(stdlyr) Return nonzero for ViaCut
IsLayerDielectric(stdlyr) Return nonzero for Dielectric
IsLayerDarkField(stdlyr) Return nonzero for DarkField
GetLayerThickness(stdlyr) Return Thickness
GetLayerRho(stdlyr) Return resistivity
GetLayerResis(stdlyr) Return resistance per square
GetLayerTau(stdlyr) Return Drude relaxation time
GetLayerEps(stdlyr) Return dielectric constant
GetLayerCap(stdlyr) Return capacitance per area
GetLayerCapPerim(stdlyr) Return capacitance per length
GetLayerLambda(stdlyr) Return penetration depth
Selections
SetLayerSpecific(state) Restrict selectability to current layer
SetLayerSearchUp(state) Set layer traversal direction
SetSelectMode(ptr_mode, area_mode, sel_mode) Set selection modes
SetSelectTypes(string) Set selectable object types
Select(left, bottom, right, top, types) Select objects
Deselect() Deselect objects
Pseudo-Flat Generator
FlatObjList(l, b, r, t, depth) Return list of object copies
FlatObjGen(l, b, r, t, depth) Return handle to object generator
FlatObjGenLayers(l, b, r, t, depth, layers) Return handle to object generator
FlatGenNext(handle) Return handle to next object copy
FlatGenCount(handle) Count objects accessible by handle
FlatOverlapList(object_handle, touch_ok, depth, layers) Return handle to next object copy
Geometry Measurement
Distance(x, y, x1, y1) Measure distance between points
MinDistPointToSeg(x, y, x1, y1, x2, y2, aret) Measure minimum distance between point and line segment
MinDistPointToObj(x, y, object_handle, aret) Measure minimum distance between point and object
MinDistSegToObj(x1, y1, x2, y2, object_handle, aret) Measure minimum distance between line segment and object
MinDistObjToObj(object_handle1, object_handle2, aret) Measure minimum distance between objects
MaxDistPointToObj(x, y, object_handle, aret) Measure maximum distance from point to object
MaxDistObjToObj(object_handle1, object_handle2, aret) Measure maximum distance between objects
Intersect(object_handle1, object_handle2, touchok) Check if objects touch or overlap

Functions related to reading and writing of layout data:

Layout File Input/Output Functions
Layer Conversion Aliasing
ReadLayerCvAliases(handle_or_filename) Read file containing layer conversion aliases
DumpLayerCvAliases(handle_or_filename) Dump file containing layer conversion aliases
ClearLayerCvAliases() Delete all layer conversion aliases
AddLayerCvAlias(lname, new_lname) Add layer conversion alias to table
RemoveLayerCvAlias(lname) Remove layer conversion alias from table
GetLayerCvAlias(lname) Return conversion alias for layer name
Cell Name Mapping
SetMapToLower(state, rw) Set cell name case conversion
SetMapToUpper(state, rw) Set cell name case conversion
Cell Table
CellTabAdd(cellname, expand) Add cell(s) to cell table
CellTabCheck(cellname) Return true if name is in cell table
CellTabRemove(cellname) Remove name from cell table
CellTabList(cellname) List names in cell table
CellTabClear(cellname) Clear all names from cell table
Windowing and Flattening
SetConvertFlags(use_window, clip, flatten, ecf_level, rw) Set modes for format translation or output
SetConvertArea(l, b, r, t, rw) Set filter/clipping area for translation or output
Scale Factor
SetConvertScale(scale, which) Set scale factor for import/export
Export Flags
SetStripForExport(state) Set flag to write physical data only
SetSkipInvisLayers(code) Set code to skip invisible layers in output
Import Flags
SetMergeInRead(state) Enable box and wire merging in input
Layout File Format Conversion
FromArchive(file_or_chd, destination) Translate archive file to another format
FromTxt(text_file, gds_file) Create GDSII file from GDSII text
FromNative(dir_path, archive_file) Translate native cell files to archive
Export Layout File
SaveCellAsNative(cellname, directory) Write a native cell file in the directory
Export(filepath, allcells) Write data to disk
ToXIC(destination_dir) Write Xic files
ToCGX(cgx_name) Write CGX file
ToCIF(cif_name) Write CIF file
ToGDS(gds_name) Write GDSII file
ToGdsLibrary(gds_name, cellname_list) Write GDSII library file
ToOASIS(oas_name) Write OASIS file
ToTxt(archive_file, text_file, cmdargs) Write text-mode GDSII/CGX/OASIS file
Cell Hierarchy Digest
FileInfo(filename, handle_or_filename, flags) Obtain info about archive file
OpebCellHierDigest(filename, info_saved) Create new CHD
WriteCellHierDigest(chd_name, filename, incl_geom, no_compr) Write CHD to file
ReadCellHierDigest(filename, cgd_type) Obtain CHD from file
ChdList() Return a list of CHD access names
ChdChangeName(old_chd_name, new_chd_name)) Change the access name of a CHD
ChdIsValid(chd_name) Return true if named CHD exists
ChdDestroy(chd_name) Destroy the CHD
ChdInfo(chd_name, handle_or_filename, flags) Obtain CHD information
ChdFileName(chd_name) Obtain archive file name
ChdFileType(chd_name) Obtain archive file format
ChdTopCells(chd_name) Obtain archive top-level cell names
ChdListCells(chd_name, cellname, mode, all) Obtain list of cell names
ChdLayers(chd_name) Obtain layers used in archive
ChdInfoMode(chd_name) Return saved info mode
ChdInfoLayers(chd_name, cellname) Return saved layer info
ChdInfoCells(chd_name) Return saved cell names
ChdInfoCounts(chd_name) Return saved statistics
ChdCellBB(chd_name, cellname, array) Obtain cell bounding box
ChdSetDefCellName(chd_name, cellname) Configure default cell name
ChdDefCellName(chd_name) Obtain default cell name
ChdLoadGeometry(chd_name) Create and link to a new Cell Geometry Digest
ChdLinkCgd(chd_name, cgd_name) Link or unlink a CGD to the CHD
ChdGetGeomName(chd_name) Return name of attached Cell Geometry Digest
ChdClearGeometry(chd_name) Unlink attached Cell Geometry Digest
ChdSetSkipFlag(chd_name, cellname, skip) Set or clear skip flag
ChdClearSkipFlags(chd_name) Clear all skip flags
ChdCompare(chd_name1, cname1, chd_name2, cname2, layer_list, skip_layers, maxdiffs, obj_types, geometric, array) Compare objects in cells
ChdCompareFlat(chd_name1, cname1, chd_name2, cname2, layer_list, skip_layers, maxdiffs, area, coarse_mult, find_grid, array) Compare objects in flat cell hierarchies
ChdEdit(chd_name, scale, cellname) Open cell for editing
ChdOpenFlat(chd_name, scale, cellname, array, clip) Read a flattened hierarchy into memory
ChdSetFlatReadTransform(tfstring, x, y) Set a transform for flat reading
ChdEstFlatMemoryUse(chd_name, cellname, array, counts_array) Estimate memory required for flat read
ChdWrite(chd_name, scale, cellname, array, clip, all, flatten, ecf_level, outfile) Write cells to file
ChdWriteSplit(chd_name, cellname, basename, array, regions_or_gridsize, numregions_or_bloatval, maxdepth, scale, flags) Write to flat files
ChdCreateReferenceCell(chd_name, cellname) Create a reference cell in memory
ChdLoadCell(chd_name, cellname) Load cell in memory, reference subcells
ChdIterateOverRegion(chd_name, cellname, funcname, array, coarse_mult, fine_grid, bloat_val) Iterate over grid, call callback function
ChdWriteDensityMaps(chd_name, cellname, array, coarse_mult, fine_grid, bloat, save) Iterate over grid, compute density
Cell Geometry Digest
OpenCellGeomDigest(idname, string, type) Create a new CGD
NewCellGeomDigest() Create a new empty CGD
WriteCellGeomDigest(cgd_name, filename) Write CGD to file
CgdList() Return a list of CGD access names
CgdChangeName(old_cgd_name, new_cgd_name) Change the access name of a CGD
CgdIsValid(cgd_name) Return true if named CGD exists
CgdDestroy(cgd_name) Destroy the CGD
CgdIsValidCell(cgd_name, cellname) Return true if cell is found in CGD
CgdIsValidLayer(cgd_name, cellname, layername) Return true if cell containing layer is found in CGD
CgdRemoveCell(cgd_name, cellname) Remove a cell from the CGD
CgdIsCellRemoved(cgd_name, cellname) Return true if the cell was removed from the CGD
CgdRemoveLayer(cgd_name, cellname, layername) Remove layer data from a cell in the CGD
CgdAddCells(cgd_name, chd_name, cells_list) Add cells to the CGD
CgdContents(cgd_name, cellname, layername) List contents of CGD
CgdOpenGeomStream(cgd_name, cellname, layername) Open geometry stream from CGD
GsReadObject(gs_handle) Read geometry from a geometry stream
GsDumpOasisText(gs_handle) Dump OASIS ASCII text representation to console
Assembly Stream
StreamOpen(outfile) Open an assembly stream
StreamTopCell(stream_handle, cellname) Define a top-level cell in the stream
StreamSource(stream_handle, file_or_chd, scale, layer_filter, name_change) Register a source archive for streaming
StreamInstance(stream_handle, cellname, x, y, my, rot, magn, scale, no_hier, ecf_level, flatten, array, clip) Add an instance conversion spec to a source
StreamRun(stream_handle) Initiate streaming to output

First group of functions for geometry editing

Geometry Editing Functions 1
General Editing
ClearCell(undoable, layer_list) Clear content of current cell
Commit() Finalize changes in database
Undo() Undo last operation
Redo() Redo last undone operation
SelectLast(types) Select most recent new object
Current Transform
SetTransform(angle_or_string, reflection, magnification) Set current transform
StoreTransform(register) Save current transform parameters
RecallTransform(register) Recall current transform parameters
GetTransformString() Return acode string for the current transform
GetCurAngle() Return current transform angle
GetCurMX() Return current transform mirror-x
GetCurMY() Return current transform mirror-y
GetCurMagn() Return current transform magnification
UseTransform(enable, x, y) Enable use of current transform
Derived Layers
AddDerivedLayer(lname, index, lexpr) Add a derived layer definition
RemDerivedLayer(lname) Remove a derived layer definition
IsDerivedLayer(lname) True if name matches a derived layer definition
GetDerivedLayerIndex(lname) Return the index of the specified derived layer
GetDerivedLayerExpString(lname) Return the layer expression string of the specified derived layer
GetDerivedLayerLexpr(lname, noexp) Return a layer expression object for the specified derived layer
EvalDerivedLayers(list, array) Evaluate the list of derived layers in an area
ClearDerivedLayers(list) Clear geometry of derived layers in list
Object Management by Handles
ListElecInstances() List electrical cell instances from current cell
ListPhysInstances() List physical cell instances from current cell
SelectHandle() Return handle to a list of selected objects
SelectHandleTypes(types) Return handle to a list of selected objects of given types
AreaHandle(l, b, r, t, types) Return handle to a list of objects in area
ObjectHandleDup(object_handle, types) Duplicate handle with given object types
ObjectHandlePurge(object_handle, types) Remove from list objects with given types
ObjectNext(object_handle) Advance list to next object
MakeObjectCopy(numpts, array) Create a phony object copy
ObjectString(object_handle) Return CIF-like string for object
ObjectCopyFromString(object_handle, layer) Return new object from CIF-like string
FilterObjects(object_list, template_list, all, touchok, remove) Select objects via template
CheckObjectsConnected(object_handle) Return 1 if objects in list form one group
CheckForHoles(object_handle, all) Return 1 if object(s) have ``holes''
FilterObjectsA(object_list, array, array_size, touchok, remove) Select objects via given polygon
BloatObjects(object_handle, all, dimen, lname, mode) Create list of bloated objects
EdgeObjects(object_handle, all, dimen, lname, mode) Create list of edge ``wire'' polygons
ManhattanizeObjects(object_handle, all, dimen, lname, mode) Create list of Manhattanized objects
GroupObjects(object_handle, array) Create connected groups of objects
JoinObjects(object_handle, lname) Join touching objects in a list
SplitObjects(object_handle, all, lname, vert) Split into trapezoids objects in a list
DeleteObjects(object_handle, all) Delete objects
SelectObjects(object_handle, all) Select objects
DeselectObjects(object_handle, all) Deselect objects
MoveObjects(object_handle, all, refx, refy, x, y) Move object(s)
MoveObjectsToLayer(object_handle, all, refx, refy, x, y, oldlayer, newlayer) Move object(s) with layer change
CopyObjects(object_handle, all, refx, refy, x, y, repcnt) Copy object(s)
CopyObjectsToLayer(object_handle, all, refx, refy, x, y, oldlayer, newlayer, repcnt) Copy object(s) with layer change
CopyObjectsH(object_handle, all, refx, refy, x, y, oldlayer, newlayer, todb) Copy object(s) to handle
GetObjectType(object_handle) Return the object's type code
GetObjectID(object_handle) Return the object's id number
GetObjectArea(object_handle) Return the object's area in square microns
GetObjectPerim(object_handle) Return the object's perimeter in microns
GetObjectCentroid(object_handle, array) Compute the object's centroid point
GetObjectBB(object_handle, array) Return the object's bounding box
SetObjectBB(object_handle, array) Set the object's bounding box, scale object
GetObjectListBB(object_handle, array) Return the bounding box of all objects in list
GetObjectXY(object_handle, array) Return the object's reference point
SetObjectXY(object_handle, x, y) Set the object's reference point
GetObjectLayer(object_handle) Return the object's layer name
SetObjectLayer(object_handle, layername) Set the object's layer
GetObjectFlags(object_handle) Return the object's flags
SetObjectNoDrcFlag(object_handle, value) Set or unset the NoDRC object flag
SetObjectMark1Flag(object_handle, value) Set or unset the Mark1 object flag
SetObjectMark2Flag(object_handle, value) Set or unset the Mark2 object flag
GetObjectState(object_handle) Return the object's state
GetObjectGroup(object_handle) Return the object's conductor group number
SetObjectGroup(object_handle, group_num) Set the object's conductor group number
GetObjectCoords(object_handle, array) Return the object's coordinates
SetObjectCoords(object_handle, array, size) Set the object's coordinates
GetObjectMagn(object_handle) Return the magnification of a subcell
SetObjectMagn(object_handle, magn) Set object's magnification, rescale object
GetWireWidth(object_handle) Return width of wire
SetWireWidth(object_handle, width) Set width of wire
GetWireStyle(object_handle) Return wire end style
SetWireStyle(object_handle, code) Set wire end style
SetWireToPoly(object_handle) Convert wire to polygon
GetWirePoly(object_handle, array) Return wire bounding polygon
GetLabelText(object_handle) Return text of label
SetLabelText(object_handle, text) Set text in label
GetLabelFlags(object_handle) Return flags for label
SetLabelFlags(object_handle, flags) Set flags for label
GetInstanceArray(object_handle, array) Return instance array parameters
SetInstanceArray(object_handle, array) Set instance array parameters, resize array
GetInstanceXform(object_handle) Return instance transformation string
GetInstanceXformA(object_handle, array) Return instance transformation in array
SetInstanceXform(object_handle, transform) Set instance transformation from string
SetInstanceXformA(object_handle, array) Set instance transformation from array
GetInstanceMaster(object_handle) Return name of instance master cell
SetInstanceMaster(object_handle, newname) Set instance master, replace instance
GetInstanceName(object_handle) Return name of instance
SetInstanceName(object_handle, newname) Set instance name property
GetInstanceAltName(object_handle) Return alternate name of instance
GetInstanceType(object_handle) Return instance type code
GetInstanceIdNum(object_handle) Return instance id number
GetInstanceAltIdNum(object_handle) Return instance alternate id number

Second group of functions for geometry editing

Geometry Editing Functions 2
Cells, PCells, Vias, and Instance Placement
CheckPCellParam(library, cell, view, pname, value) Validate a parameter value
CheckPCellParams(library, cell, view, params) Validate a parameter list
CreateCell(cellname, [orig_x, orig_y]) Create new cell from selected objects
CopyCell(name, newname) Copy a cell
RenameCell(oldname, newname) Globally rename cell in memory, fix references
DeleteEmpties(recurse) Delete empty cells
Place(cellname, x, y [, refpt, array, smash, usegui, tfstring]) Place an instance
PlaceH(cellname, x, y [, refpt, array, smash, usegui, tfstring]) Place an instance, return handle
PlaceSetArrayParams(nx, ny, dx, dy) Set instrance arraying parameters
PlaceSetPCellParams(library, cell, view, params) Set pcell parameter string
Replace(cellname, add_xform, array) Replace an instance
OpenViaSubMaster(vianame, defnstr) Define a standard via variant
Clipping Functions
ClipAround(object_handle1, all1, object_handle2, all2) Clip object around other objects
ClipAroundCopy(object_handle1, all1, object_handle2, all2, lname) Clip objects around other objects, return copies
ClipTo(object_handle1, all1, object_handle2, all2) Clip objects to other objects
ClipToCopy(object_handle1, all1, object_handle2, all2, lname) Clip objects to other objects, return copies
ClipObjects(object_handle, merge) Clip object list so no overlap
ClipIntersectCopy(object_handle1, all1, object_handle2, all2, lname) Exclusive-or objects or lists
Other Object Management Functions
ChangeLayer() Change layer of selected objects
Bloat(dimen, mode) Bloat selected objects
Manhattanize(dimen, mode) Manhattanize selected objects
Join() Join selected objects
Decompose(vert) Convert selected objects to trapezoids
Box(left, bottom, right, top) Create a box
BoxH(left, bottom, right, top) Create a box, return handle
Polygon(num, arraypts) Create a polygon
PolygonH(num, arraypts) Create a polygon, return handle
Arc(x, y, rad1X, rad1Y, rad2X, rad2Y, ang_start, ang_end) Create an arc polygon
ArcH(x, y, rad1X, rad1Y, rad2X, rad2Y, ang_start, ang_end) Create an arc polygon, return handle
Round(x, y, rad) Create a disk polygon
RoundH(x, y, rad) Create a disk polygon, return handle
HalfRound(x, y, rad, dir) Create a half-disk polygon
HalfRoundH(x, y, rad, dir) Create a half-disk polygon, return handle
Sides(numsides) Set the number of sides used for round objects
Wire(width, num, arraypts, end_style) Create a wire
WireH(width, num, arraypts, end_style) Create a wire, return handle
Label(text, x, y [, width, height, flags]) Create a label
LabelH(text, x, y [, width, height, flags]) Create a label, return handle
Logo(string, x, y [, width, height]) Create physical text
Justify(hj, vj) Set default text justification
Delete() Delete selected objects
Erase(left, bottom, right, top) Erase objects in area
EraseUnder() Erase overlap with selected objects
Yank(left, bottom, right, top) Grab geometry into buffer
Put(x, y, bufnum) Place stored geometry
Xor(left, bottom, right, top) Exclusive-or geometry in area
Copy(fromx, fromy, tox, toy, repcnt) Copy selected objects
CopyToLayer(fromx, fromy, tox, toy, oldlayer, newlayer, repcnt) Copy selected objects and change layer
Move(fromx, fromy, tox, toy) Move selected objects
MoveToLayer(fromx, fromy, tox, toy, oldlayer, newlayer) Move selected objects and change layer
Rotate(x, y, ang, remove) Rotate selected objects
RotateToLayer(x, y, ang, oldlayer, newlayer, remove) Rotate selected objects and change layer
Split(x, y, flag, orient) Divide selected objects
Flatten(depth, use_merge, fast_mode) Flatten hierarchy
Layer(string, mode, depth, recurse, noclear, use_merge, fast_mode) Apply geometric manipulations
Property Management
PrpHandle(object_handle) Return handle to a list of the object's properties
GetPrpHandle(number) Return a handle to certain properties
CellPrpHandle() Return handle to a list of all current cell properties
GetCellPrpHandle(number) Return handle to a list of specific current cell properties
PrpNext(prpty_handle) Advance to the next property
PrpNumber(prpty_handle) Return the property number
PrpString(prpty_handle) Return the property string
PrptyString(obj_or_prp_handle, number) Return the property string
GetPropertyString(number) Return property string from selected object
GetCellPropertyString(number) Return property string from current cell
PrptyAdd(object_handle, number, string) Add a property
AddProperty(number, string) Add properties to selected objects
AddCellProperty(number, string) Add property to current cell
PrptyRemove(object_handle, number, string) Remove a property
RemoveProperty(number, string) Remove properties from selected objects
RemoveCellProperty(number, string) Remove properties from current cell

These are the computational geometry functions:

Computational Geometry and layer Expressions
Trapezoid lists and Layer Expressions
SetZref(arg) Set background clipping zoidlist
GetZref() Return background clipping zoidlist
GetZrefBB(array) Return background clipping zoidlist bounding box
AdvanceZref(clear, array) Establish or advance grid clipping area
Zhead(zoidlist) Extract and return leading trapezoid
Zvalues(zoidlist, array) Extract parameters of leading trapezoid
Zlength(zoidlist) Return number of trapezoids in list
Zarea(zoidlist) Return total area of trapezoids in list
GetZlist(layersrc, depth) Create zoidlist from cell
GetSqZlist(layername) Create zoidlist from selected objects
TransformZ(zoidlist, refx, refy, newx, newy) Apply a transformation to a zoidlist
BloatZ(dimen, zoidlist, mode) Bloat a zoidlist
ExtentZ(zoidlist) Find the bounding box of a zoidlist
EdgesZ(dimen, zoidlist, mode) Create an edge zoidlist
ManhattanizeZ(dimen, zoidlist, mode) Manhattanize a zoidlist
RepartitionZ(zoidlist) Canonicalize for horizontal split
BoxZ(l, b, r, t) Create zoidlist from box
ZoidZ(xll, xlr, yl, xul, xur, yu) Create zoidlist from trapezoid
ObjectZ(object_handle, all) Create zoidlist from object(s)
ParseLayerExpr(string) Create layer_expr from string
EvalLayerExpr(layer_expr, zoidlist, depth, isclear) Evaluate layer expression in zoidlist
TestCoverageFull(layer_expr, zoidlist, minsize) Test layer expression for full coverage of zoidlist
TestCoveragePartial(layer_expr, zoidlist, minsize) Test layer expression for partial coverage of zoidlist
TestCoverageNone(layer_expr, zoidlist, minsize) Test layer expression for no coverage of zoidlist
TestCoverage(layer_expr, zoidlist, testfull) Test layer expression in zoidlist
ZtoObjects(zoidlist, lname, join, to_dbase) Create objects from zoidlist
ZtoTempLayer(longname, zoidlist, join) Put objects from zoidlist in layer
ClearTempLayer(longname) Clear objects in layer
ZtoFile(filename, zoidlist, ascii) Save trapezoid list in file
ZfromFile(filename) Extract trapezoid list from file
ReadZfile(filename) Read trapezoids from file into current cell
ChdGetZlist(chd_name, cellname, scale, array, clip, all) Extract trapezoid list through CHD
Operations
Filt(zoids, lexpr) Trapezoid filtering
GeomAnd(zoids1 [, zoids2]) Geometrical AND function
GeomAndNot(zoids1, zoids2) Clip second list from first
GeomCat(zoids1, ...) Concatenate zoidlists
GeomNot(zoids1) Invert zoidlist
GeomOr(zoids1, ...) Merge zoidlist
GeomXor(zoids1 [, zoids2]) Exclusive-Or zoidlists
Spatial Parameter Tables
ReadSPtable(filename) Create or replace a table
NewSPtable(name, x0, dx, nx, y0, dy, ny) Create a table
WriteSPtable(name, filename) Write a table to a file
ClearSPtable(name) Destroy a table
FindSPtable(name, array) Find a table
GetSPdata(name, x, y) Obtain value from table
SetSPdata(name, x, y, value) Set table value
Polymorphic Flat Database
ChdOpenOdb(chd_name, scale, cellname, array, clip, dbname) Open a flat object database
ChdOpenZdb(chd_name, scale, cellname, array, clip, dbname) Open a flat trapezoid database
ChdOpenZbdb(chd_name, scale, cellname, array, dbname, dx, dy, bx, by) Open a binned flat trapezoid database
GetObjectsOdb(dbname, layer_list, array) Read objects from database
ListLayersDb(dbname) List the layers used in the database
GetZlistDb(dbname, layer_name, zoidlist) Read trapezoids from database
GetZlistZbdb(dbname, layer_name, nx, ny) Read trapezoids from ZBDB database
DestroyDb(dbname) Destroy a database
ShowDb(dbname, array) Display database region
Named String Tables
FindNameTable(tabname, create) Verify existence of or create named string table
RemoveNameTable(tabname) Destroy named string table
ListNameTables() List existing named string tables
ClearNameTables() Destroy all named string tables
AddNameToTable(tabname, name, value) Add name/value to named string table
RemoveNameFromTable(tabname, name) Remove name from named string table
FindNameInTable(tabname, name) Return value for name in named string table
ListNamesInTable(tabname) Return list of names in named string table

These functions are specific to design rule checking:

Design Rule Checking Functions
DRC
DRCstate(state) Set interactive DRC
DRCsetLimits(batch_cnt, intr_cnt, intr_time, skip_cells) Set DRC limit values
DRCgetLimits(array) Return DRC limit values
DRCsetMaxErrors(value) Set the batch mode error limit
DRCgetMaxErrors() Return the batch mode error limit
DRCsetInterMaxObjs(value) Set the interactive mode object count limit
DRCgetInterMaxObjs() Return the interactive mode object count limit
DRCsetInterMaxTime(value) Set the interactive mode time limit
DRCgetInterMaxTime() Return the interactive mode time limit
DRCsetInterMaxErrors(value) Set the interactive mode error count limit
DRCgetInterMaxErrors() Return the interactive mode error count limit
DRCsetInterSkipInst(value) Set the interactive mode instance skip flag
DRCgetInterSkipInst() Return the interactive mode instance skip flag
DRCsetLevel(level) Set DRC error reporting level
DRCgetLevel() Return DRC error reporting level
DRCcheckArea(array, file_handle_or_name) Perform DRC in area
DRCchdCheckArea(chdname, cellname, gridsize, array, file_handle_or_name, flatten) Perform DRC in area using CHD
DRCcheckObjects(file_handle) Perform DRC for selected objects
DRCregisterExpr(expr) Register a layer expression
DRCtestBox(left, bottom, right, top, ld) Perform DRC for given box
DRCtestPoly(num, points, ld) Perform DRC for given polygon
DRCzList(layername, rulename, index, source) Create test areas in returned trapezoid list
DRCzListEx(source, target, inside, outside, incode, outcode, dimen) Create test areas in returned trapezoid list

Functions specifically for the extraction system:

Extraction Functions
Menu Commands
DumpPhysNetlist(filename, depth, modestring, names) Dump physical netlist
DumpElecNetlist(filename, depth, modestring, names) Dump electrical netlist
SourceSpice(filename, modestring) Update electrical from SPICE file
ExtractAndSet(depth, modestring) Update electrical from physical
FindPath(x, y, depth, use_extract) Return objects in netlist
FindPathOfGroup(groupnum, depth) Return objects in netlist
Terminals
ListTerminals() List cell contact terminals
FindTerminal(name, index, use_e, xe, ye, use_p, xp, yp) Find a cell connection terminal
CreateTerminal(name, x, y, termtype) Create new contact terminal
DestroyTerminal(thandle) Remove and destroy cell contact terminal
GetTerminalName(thandle) Return terminal name
SetTerminalName(thandle, name) Assign terminal name
GetTerminalType(thandle) Return terminal type code
SetTerminalType(thandle, termtype) Set terminal type
GetTerminalFlags(thandle) Return terminal flags
SetTerminalFlags(thandle, flags) Set terminal flags
UnsetTerminalFlags(thandle, flags) Unset terminal flags
GetElecTerminalLoc(thandle, index, array) Return electrical terminal location
SetElecTerminalLoc(thandle, x, y) Assign electrical terminal location
ClearElecTerminalLoc(thandle, x, y) Delete symbolic duplicate location
Physical Terminals
ListPhysTerminals() List physical cell contact terminals
FindPhysTerminal(name, use_p, xp, yp) Find a physical cell connection terminal
CreatePhysTerminal(thandle, x, y, layer) Create new linkage to layout terminal
HasPhysTerminal(thandle) Check if terminal has physical component
DestroyPhysTerminal(thandle) Remove and destroy layout terminal linkage
GetPhysTerminalLoc(thandle, array) Return layout terminal location
SetPhysTerminalLoc(thandle, x, y) Assign layout terminal location
GetPhysTerminalLayer(thandle) Return associated layer name
SetPhysTerminalLayer(thandle, layer) Set layer name for hinting
GetPhysTerminalGroup(thandle) Return associated physical group number
GetPhysTerminalObject(thandle) Return handle to associated object
Physical Conductor Groups
Group() Run extraction
GetNumberGroups() Return number of groups
GetGroupBB(group, array) Return bounding box of group
GetGroupNode(group) Return node of group
GetGroupName(group) Return net or formal terminal name
GetGroupNetName(group) Return net name
GetGroupCapacitance(group) Return group capacitance
CountGroupObjects(group) Count physical objects in group
ListGroupObjects(group) Return list of objects in group
CountGroupVias(group) Count standard vias or via cells used in the group
ListGroupVias(group) Return list of standard via or via cell instances used in the group
CountGroupDevContacts(group) Count device contacts in group
ListGroupDevContacts(group) Return list of device contacts in group
CountGroupSubcContacts(group) Count subcircuit contacts in group
ListGroupSubcContacts(group) Return list of subcircuit contacts in group
CountGroupTerminals(group) Count cell connection terminals in group
ListGroupTerminals(group) Return list of cell connection terminals in group
ListGroupTerminalNames(group) Return list of cell contact terminal names in group
CountGroupPhysTerminals(group) Count physical terminals in group
ListGroupPhysTerminals(group) Return list of physical terminals in group
Physical Devices
ListPhysDevs(name, pref, indices, area_array) Return list of physical devices
GetPdevName(device_handle) Return device name
GetPdevIndex(device_handle) Return device index
GetPdevDual(device_handle) Return corresponding electrical device
GetPdevBB(device_handle, array) Return device bounding box
GetPdevMeasure(device_handle, mname) Return device measurement
ListPdevMeasures(device_handle) Return list of measurement keywords
ListPdevContacts(device_handle) Return list of device contacts
GetPdevContactName(dev_contact_handle) Return device contact name
GetPdevContactBB(dev_contact_handle, array) Return device contact bounding box
GetPdevContactGroup(dev_contact_handle) Return device contact conductor group
GetPdevContactLayer(dev_contact_handle) Return device contact layer
GetPdevContactDev(dev_contact_handle) Return device containing contact
GetPdevContactDevName(dev_contact_handle) Return name of device containing contact
GetPdevContactDevIndex(dev_contact_handle) Return index of device containing contact
Physical Subcircuits
ListPhysSubckts(name, index, l, b, r, t) Return list of physical subcircuits
GetPscName(subckt_handle) Return master name of physical subcircuit
GetPscIndex(subckt_handle) Return index of physical subcircuit
GetPscIdNum(subckt_handle) Return id number of physical subcircuit
GetPscInstName(subckt_handle) Return instance name of physical subcircuit
GetPscDual(subckt_handle) Return corresponding electrical subcircuit
GetPscBB(subckt_handle, array) Return physical subcircuit bounding box
GetPscLoc(subckt_handle, array) Return physical subcircuit placement location
GetPscTransform(subckt_handle, type, array) Return physical subcircuit orienttion string
ListPscContacts(subckt_handle) Return list of contacts
IsPscContactIgnorable(subc_contact_handle) Return 1 if contact to ignored subcircuit
GetPscContactName(subc_contact_handle) Return name of subcircuit
GetPscContactGroup(subc_contact_handle) Return conductor group of contact
GetPscContactSubcGroup(subc_contact_handle) Return group of contact in subcircuit
GetPscContactSubc(subc_contact_handle) Return subcircuit containing contact
GetPscContactSubcName(subc_contact_handle) Return name of subcircuit containing contact
GetPscContactSubcIndex(subc_contact_handle) Return index of subcircuit containing contact
GetPscContactSubcIdNum(subc_contact_handle) Return id number of subcircuit containing contact
GetPscContactSubcInstName(subc_contact_handle) Return instnce name of subcircuit containing contact
Electrical Devices
ListElecDevs(regex) Return list of electrical devices
SetEdevProperty(devname, prpty, string) Set electrical device property
GetEdevProperty(devname, prpty) Return electrical device property
GetEdevObj(devname) Return electrical device subcell object
Resistance/Inductance Extraction
ExtractRL(conductor_zoidlist, layername, r_or_l, array, term, ...) Extract resistance or inductance from object
ExtractNetResistance(net_handle, spicefile, array, term, ...) Extract resistance from wire net

Functions for electrical schematic editing:

Schematic Editor Functions
Output Generation
Connect(for_spice) Internally process the schematic
ToSpice(spicefile) Write SPICE file
Electrical Nodes
IncludeNoPhys(flag) Set nophys property usage
GetNumberNodes() Return number of nodes in circuit
SetNodeName(node, name) Set text name for node
GetNodeName(node) Return text name for node
GetNodeNumber(name) Return node number for named node
GetNodeGroup(node) Return corresponding group for node
ListNodePins(node) Return list of connected cell contact terminals
ListNodeContacts(node) Return list of connected instance terminals
GetNodeContactInstance(terminal_handle) Return handle to instance providing contact
ListNodePinNames(node) Return list of connected cell contact terminal names
ListNodeContactNames(node) Return list of connected instance terminal names
Symbolic Mode
IsShowSymbolic() True if current cell displayed symbolically in main window
ShowSymbolic(show) Turn on/off symbolic display
SetSymbolicFast(symb) Set symbolic mode of current cell, no display update
MakeSymbolic() Create simple symbolic representation



Subsections
next up previous contents index
Next: Main Functions 1 Up: xicmanual Previous: Help System   Contents   Index
Stephen R. Whiteley 2022-05-28