首页 / design / oaDesign

oaDesign

模块: oapy._oa._design 导入: from oapy._oa import _design

概览

oaDesignoapy 在 AIVI 中提供的核心设计数据库入口,用于打开、保存、遍历和管理 OpenAccess 设计数据。

本页汇总 oaDesign 当前在 oapy 中可用的 Python 接口。

详细说明

An oaDesign is a database that holds all the design data that describes a part of a design。 All netlists, schematics, layouts and other design representations live as a set of oaDesigns in OpenAccess。 It is a container for the connectivity, geometry, hierarchy, parasitics, and floorplanning information about a design。 Each oaDesign lives in a cellView in an OpenAccess library and is identified by the lib, cell, and view names for that oaCellView 。 It will be persistently represented as one or more files in that cellView。 The information that the application needs is read from the database file when it is accessed through the OpenAccess API。 A number of operations on each oaDesign, such as the first time it is opened, and when it is purged from memory, will trigger callbacks that may be registered with an oaObserver object。 See oaDesign Observer Notification, Binding, and Loading in the Programmers Guide for more information on using design observers。 An oaDesign is the container for all classes that derive from oaDesignObject 。 An application can open an oaDesign explicitly with the open() call or implicitly by traversing from an oaInst to its master。 All design database objects can be reached by traversing from the oaDesign to its contents。 The design connectivity and hierarchy can be represented three distinct ways in an oaDesign。 These are referred to as hierarchy domains, as follows: 1) Block Domain: The oaDesign may contain an oaBlock , which holds all the design geometry, its physical connectivity and instances of other oaDesigns that lead down a design hierarchy。 This is the block or physical domain。 2) Module Domain: The oaDesign may contain a number of oaModule objects that define a logical hierarchy。 Several levels of this module hierarchy may live in a single oaDesign。 This is the module or logical domain。 3) Occurrence Domain: In this domain every net and instance in the hierarchy has a unique representation, even when multiple instances of a module or a block cause the connectivity object to be reused。 See OpenAccess Hierarchy Domains in the Programmers Guide for more information on this topic。 All of these domains can be present in an oaDesign at the same time。 The oaDesign also may contain parasitic data that provides an electrical model of the physical nets in the design。 The oaDesign class can be observed by deriving from oaObserver 。 See oaDesign Observer Notification, Binding, and Loading in the Programmers Guide for more information on using design observers。 oaDesigns in the Context of pCell SuperMasters and SubMasters oaDesigns also may be created as both SuperMasters and SubMasters of pcells。 To create a pcell, you create an oaDesign and then you call oaDesign::defineSuperMaster on that oaDesign to turn it into a pcell superMaster。 The superMaster has a set of parameters with their default values。 When an instance of a pcell superMaster is created, the call to create that instance may specify a param array that contains some or all of the parameters associated with the superMaster。 The values in the paramArray specified for the instance are the “override” parameters that specify the non-default values for this particular instance。 SubMasters are usually created by creating an instance of the pcell and traversing to the master of that instance, which is the pcell subMaster。 This traversal process is explained below。 SubMasters also can be explicitly created by calling oaDesign::open and specifying a set of param values。 SubMasters are not stored on disk, and only exist in memory。 When an application traverses to the master for the pcell instance, it will go to the subMaster oaDesign for that set of parameter values。 The subMaster is created at run time by running the application’s evaluation routine the first time the master is traversed to for a given parameter set for a given pcell。 The caller must register a pcell evaluation routine by constructing an oaPcellObserver that has an override for the virtual function onPreEval() or onPostEval()。 When OpenAccess needs to have a subMaster for a given parameterization of a superMaster, it calls the evaluator that has been registered for that superMaster。

方法总览

状态 Python 调用
obj.close()
obj.purge()
obj.save()
obj.save(type)
obj.saveAs(libNameIn, cellNameIn, viewNameIn)
obj.saveAs(libNameIn, cellNameIn, viewNameIn, renameTopModule)
obj.reopen(mode)
obj.revert()
obj.getLibName(libName)
obj.getCellName(cellName)
obj.getViewName(viewName)
obj.getLibName(ns, libName)
obj.getCellName(ns, cellName)
obj.getViewName(ns, viewName)
obj.getLib()
obj.getTopBlock()
obj.getTopModule()
obj.getTopOccurrence()
obj.getMode()
obj.getRefCount()
obj.getCreateTime()
obj.getReadInTime()
obj.getLastSavedTime()
obj.getCellType()
obj.getViewType()
obj.getTimeStamp(type)
obj.getTimeStamp(def)
obj.getTech()
obj.isModified()
obj.isRecovered()
obj.getParams(params)
obj.getParams(params, includeDefaults)
obj.getParams(params)
obj.getSuperMaster()
obj.isSuperMaster()
obj.isSubMaster()
obj.isStdViaMaster()
obj.getPcellDef()
obj.getPcellEvaluatorName(evalName)
obj.hasSymmetricConnectivity()
obj.setCellType(cellType)
obj.setTopModule(module, visibleToBlock=true)
obj.isScalarized()
obj.scalarize()
obj.openHier()
obj.openHier(numLevels)
obj.contains(design)
obj.hasRecursion()
obj.hasReference(design)
obj.defineSuperMaster(def, pa)
obj.evalSuperMaster()
obj.undefineSuperMaster()
obj.findParam(name, param)
obj.enableTimeStamps(value=true)
obj.preAllocate(dataType, numObjs)
obj.preAllocate(type, numObjs)
obj.enableUndo(value=true)
obj.enableUndo(value, undoModel)
obj.redo()
obj.undo()
obj.isUndoEnabled()
obj.isInUndo()
obj.setCp()
obj.setCp(checkPointID)
obj.unsetCp()
obj.getNumUndoCpRecs()
obj.getCpID()
obj.getNumUndoRecsOnCp()
obj.getUndoModel()
obj.getEffectiveUndoModel()
obj.calcVMSize()
obj.minimizeVM()
obj.hasDefaultConstraintGroup()
obj.getDefaultConstraintGroup()
obj.getFeatures(dataModelRev, features)
obj.getAnalysisPoints()
obj.getSubMasters()
obj.getModules()
obj.getModInstHeaders()
obj.getUsedIn()
obj.getViaHeaderUsedIn()
obj.getGroups(filterFlags=oacGroupIterNoDomain)
obj.getGroups(def, filterFlags=oacGroupIterNoDomain)
obj.getGroupsByName(name, filterFlags=oacGroupIterNoDomain)
obj.getAppDefsByDataType(dataType, domain)
obj.getAppObjectDefs()
obj.getAppObjects(def)
obj.getValues()
obj.getConstraintGroups()
obj.getConstraintGroups(def)
obj.getConstraints(def=NULL)
obj.getConstraintParams()
obj.getConstraintGroupHeaders()
obj.getViaVariants()
obj.getViaVariantHeaders()
_design.oaDesign.open(libNameIn, cellNameIn, viewNameIn, viewType, mode)
_design.oaDesign.open(libNameIn, cellNameIn, viewNameIn, mode)
_design.oaDesign.open(libNameIn, cellNameIn, viewNameIn, params)
_design.oaDesign.open(viaDef, params=NULL)
_design.oaDesign.open(viaDef, params=NULL)
_design.oaDesign.recover(libNameIn, cellNameIn, viewNameIn, type)
_design.oaDesign.find(libNameIn, cellNameIn, viewNameIn)
_design.oaDesign.exists(libNameIn, cellNameIn, viewNameIn)
_design.oaDesign.exists(libNameIn, cellNameIn, viewNameIn, type)
_design.oaDesign.destroy(libNameIn, cellNameIn, viewNameIn)
_design.oaDesign.destroy(libNameIn, cellNameIn, viewNameIn, type)
_design.oaDesign.getRevNumber()
_design.oaDesign.getOpenDesigns()

方法说明

obj.close()

绑定状态: 已绑定

Python 调用: obj.close()

This function is used to indicate that at least one portion of the application is finished with this oaDesign and no longer needs to use the pointers to it or the objects it contains。 Each oaDesign has a reference count that is the sum of the calls to open() on it, plus the number of other open oaDesigns that have an InstHeader that refers to it, minus the number of calls to close() on it。 Each successful call to close decrements the reference count on a design。 When a close causes the reference count to decrement to 0, the design is purged or removed from memory。 The pointer to it and the pointers to all the managed objects contained within the design become invalid。 If this happens when the design has never been saved, then its cellView, cell and view are removed if they are otherwise empty。 Use purge() to force this to happen even for a non-zero reference count。 Applications are not required to close designs。 If a design is not closed。 it remains in memory until the process ends。 Applications that want to reclaim memory used by open designs may use close() calls to indicate that they are done with the design。 In this use model, calls to close() will match calls to open() 。 There should never be more calls to close() for a given design than calls to open() 。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.close()

obj.purge()

绑定状态: 已绑定

Python 调用: obj.purge()

This function closes and removes the design from memory, regardless of its reference count。 All references to objects stored in this design become invalid。 If the purged design is a pcell supermaster, all submasters will be purged as well。

异常

  • oacPurgeOnDesignBeingPurged

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.purge()

obj.save()

绑定状态: 已绑定

Python 调用: obj.save()

This function saves the design to disk as the specified recover type of database。 The critical-save and recover-save types of databases are used to recover lost data。 The original database file is not updated, the flag indicating whether a design is modified is not updated, and the undo stack is preserved。 No observers are fired by this save transaction。

参数

  • type: A value that specifies either oacAutoSaveType or oacCriticalSaveType。

异常

  • oacSaveReadOnlyDesign
  • oacSaveScratchModeDesign

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.save()

obj.save(type)

绑定状态: 已绑定

Python 调用: obj.save(type)

This function saves the design to disk。 The design remains open and all of its in-memory data remains valid including its undo data。

异常

  • oacSaveReadOnlyDesign
  • oacSaveScratchModeDesign: Cannot save a submaster。
  • oacDataNotCompatibleOnSave: Design contains incompatible data and cannot be saved。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.save(type)

obj.saveAs(libNameIn, cellNameIn, viewNameIn)

绑定状态: 已绑定

Python 调用: obj.saveAs(libNameIn, cellNameIn, viewNameIn)

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.saveAs(libNameIn, cellNameIn, viewNameIn)

obj.saveAs(libNameIn, cellNameIn, viewNameIn, renameTopModule)

绑定状态: 已绑定

Python 调用: obj.saveAs(libNameIn, cellNameIn, viewNameIn, renameTopModule)

This function saves this design to disk using the specified library, cell, and view names。 The design remains open and all of its in-memory data remains valid including its undo data。

异常

  • oacCannotFindLibrary
  • oacCannotSaveUnboundSuperMaster
  • oacDesignCannotGetWriteAccess
  • oacDataNotCompatibleOnSave
  • oacMismatchViewTypeForSaveAs

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.saveAs(libNameIn, cellNameIn, viewNameIn, renameTopModule)

obj.reopen(mode)

绑定状态: 已绑定

Python 调用: obj.reopen(mode)

This function attempts to reopen this design using the specified access mode。 The contents of the design can be reset or truncated depending upon the new access mode。 This function changes the open mode of this design to mode。 The refCount of the design is not affected。

参数

  • mode: The mode in which to open the design: 'r' for read 'w' for write 'a' for append 'A' for append in override mode, which is not typically used。 Refer to Compatibility for OpenAccess Applications and Data in the Programmers Guide for more information。

异常

  • oacCannotDowngradeDatabase: The database was opened in ‘A’ mode and cannot be reopened in 'a' mode。
  • oacCannotSetModeToScratch
  • oacCannotChangeFromScratchMode
  • oacDataNotCompatibleOnOpenInAppendMode: The design contains new features that are not understood by this version of OpenAccess and cannot be opened in append mode。
  • oacDataNotCompatibleOnOpenInEditableMode: The design contains new features that are not understood by this version of OpenAccess and cannot be opened in 'a'ppend or 'A'ppend mode。
  • oacInvalidOperationOnDesignBeingPurged
  • oacCannotUpgradeOverwrittenDatabase

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.reopen(mode)

obj.revert()

绑定状态: 已绑定

Python 调用: obj.revert()

This function returns the design to the state it was in when it was first opened。 If it is open in read or append mode, the contents of the design are reloaded from disk。 If the design is open in write mode, it is truncated so that it contains no data。 The access mode of the design is not affected。 If revert is called on a design in read or append mode, then the current copy on the disk is read。 If this or a different process has changed it since the original open then the newer version will be present after the revert call。 Note: All references to objects stored in this design become invalid。 The revert call can throw any exception thrown by oaDesign::open() 。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.revert()

obj.getLibName(libName)

绑定状态: 已绑定

Python 调用: obj.getLibName(libName)

This function returns the library name using the specified nameSpace。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getLibName(libName)

obj.getCellName(cellName)

绑定状态: 已绑定

Python 调用: obj.getCellName(cellName)

This function returns the cellName using the specified nameSpace。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getCellName(cellName)

obj.getViewName(viewName)

绑定状态: 已绑定

Python 调用: obj.getViewName(viewName)

This function returns the name of the view associated with this design using the specified nameSpace。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getViewName(viewName)

obj.getLibName(ns, libName)

绑定状态: 已绑定

Python 调用: obj.getLibName(ns, libName)

此函数返回与此 design 关联的库名称,返回形式为 oaScalarName。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getLibName(ns, libName)

obj.getCellName(ns, cellName)

绑定状态: 已绑定

Python 调用: obj.getCellName(ns, cellName)

此函数返回与此 design 关联的 cell 名称,返回形式为 oaScalarName。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getCellName(ns, cellName)

obj.getViewName(ns, viewName)

绑定状态: 已绑定

Python 调用: obj.getViewName(ns, viewName)

此函数返回与此 design 关联的 view 名称,返回形式为 oaScalarName。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getViewName(ns, viewName)

obj.getLib()

绑定状态: 已绑定

Python 调用: obj.getLib()

This function returns a pointer to the oaLib object associated with this database。

异常

  • oacCannotFindObjectForViaMaster

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getLib()

obj.getTopBlock()

绑定状态: 已绑定

Python 调用: obj.getTopBlock()

This function returns the block in this design。 It will return null if there is no block in this design。 Note that the name of this call reflects the future possibility of having an embedded block hierarchy in a single design。 At this time there can only be one block in a design。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getTopBlock()

obj.getTopModule()

绑定状态: 已绑定

Python 调用: obj.getTopModule()

This function returns the top module of the module hierarchy in this design。 It will return null if there are no modules in this design, or if none of the existing modules have been set to be the top。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getTopModule()

obj.getTopOccurrence()

绑定状态: 已绑定

Python 调用: obj.getTopOccurrence()

This function returns the top of the occurrence hierarchy that is rooted in this design。 It will return null only if there is no top module and no block in this design。 This is the occurrence that corresponds to this design's block if that exists, and to this design's top module if that exists。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getTopOccurrence()

obj.getMode()

绑定状态: 已绑定

Python 调用: obj.getMode()

This function returns the mode in which this design is currently opened。 When this function is called on an oaDesign that is a pCell submaster, it may return a value of 's', which corresponds to a mode used internally by OpenAccess。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getMode()

obj.getRefCount()

绑定状态: 已绑定

Python 调用: obj.getRefCount()

This function returns the number of times this design is opened without being closed。 This number is incremented for each oaDesign::open that refers to this oaDesign。 It is decremented for each oaDesign::close called on it。 It is also incremented for each open oaDesign (not including this design) that has an InstHeader that refers to this design。 See oaDesign::close for more details。

返回

  • oaUInt4。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getRefCount()

obj.getCreateTime()

绑定状态: 已绑定

Python 调用: obj.getCreateTime()

This function returns the time at which this design was created。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getCreateTime()

obj.getReadInTime()

绑定状态: 已绑定

Python 调用: obj.getReadInTime()

This function returns the time at which this design was read in from disk。

返回

  • oaTime The time since 00:00:00 GMT, Jan。 1, 1970, measured in seconds。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getReadInTime()

obj.getLastSavedTime()

绑定状态: 已绑定

Python 调用: obj.getLastSavedTime()

This function returns the time at which this design was last saved。

返回

  • oaTime The time since 00:00:00 GMT, Jan。 1, 1970, measured in seconds。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getLastSavedTime()

obj.getCellType()

绑定状态: 已绑定

Python 调用: obj.getCellType()

This function returns the cellType for this design。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getCellType()

obj.getViewType()

绑定状态: 已绑定

Python 调用: obj.getViewType()

This function returns the viewType represented by this design。 If the design is created as a follower in a cellView, the viewType will differ from that of the primary file in the cellView。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getViewType()

obj.getTimeStamp(type)

绑定状态: 已绑定

Python 调用: obj.getTimeStamp(type)

This function returns the timeStamp value for the application object in this design of the specified application object definition。 If there's no such object in this database, the default value timeStamp will be returned。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getTimeStamp(type)

obj.getTimeStamp(def)

绑定状态: 已绑定

Python 调用: obj.getTimeStamp(def)

This function returns the timeStamp value for the objects of the specified datatype in this design。 If there are no objects of the given type in this design, a default value timeStamp will be returned。 Timestamps are not available for the following types of design objects and it is an error if the given datatype is one of these values。 oacDesignParamDataType oacOccNetDataType oacOccBusNetDefDataType oacOccTermDataType oacBusTermDefDataType oacOccInstHeaderDataType oacOccModuleInstHeaderDataType oacOccInstDataType oacOccVectorInstDefDataType oacOccInstTermDataType oacOccConnectDefDataType oacOccAssignmentDataType oacOccOccurrenceDataType。

异常

  • oacInvalidDataTypeForTimeStamp

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getTimeStamp(def)

obj.getTech()

绑定状态: 已绑定

Python 调用: obj.getTech()

This function returns the technology database associated with this design。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getTech()

obj.isModified()

绑定状态: 已绑定

Python 调用: obj.isModified()

This function returns a boolean that indicates if this design has been modified but not saved。

返回

  • true If the design is modified but not saved false If the design has not been modified。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.isModified()

obj.isRecovered()

绑定状态: 已绑定

Python 调用: obj.isRecovered()

This function returns a boolean that indicates whether this design was recovered from a critical save or an auto save database file。 For information about how to use a recover type database to restore a design, see the Programmers Guide article OpenAccess Libraries and Design Management 。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.isRecovered()

obj.getParams(params)

绑定状态: 已绑定

Python 调用: obj.getParams(params)

This function fills out the vParams with the viaParams attached to this design。 If the oaDesign object is a standard via master, the vParams contains the parameters associated with the oaStdVia object used to create the via's master design。 An exception is thrown if this design is not an oaStdVia master。

异常

  • oacInvalidStdViaMaster

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getParams(params)

obj.getParams(params, includeDefaults)

绑定状态: 已绑定

Python 调用: obj.getParams(params, includeDefaults)

This function fills out pArray with the parameters attached to this design。 If includeDefaults is true, pArray will contain all parameters whether or not they were explicitly specified during creation of a subMaster (either from an oaDesign::open() or pcell evaluation)。 If includeDefaults is false, only parameters that were specified during creation of the subMaster will returned in pArray。 On a superMaster, an empty array will be returned in pArray if includeDefaults is false。 An exception will be thrown if the design is not a superMaster or a subMaster。

异常

  • oacInvalidPcellMaster

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getParams(params, includeDefaults)

obj.getParams(params)

绑定状态: 已绑定

Python 调用: obj.getParams(params)

This function fills out pArray with the parameters attached to this design。 The pArray will include all parameters whether or not they were explicitly specified during creation of a subMaster (either from an oaDesign::open() or pcell evaluation)。 An exception will be thrown if the design is not a superMaster or a subMaster。

异常

  • oacInvalidPcellMaster

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getParams(params)

obj.getSuperMaster()

绑定状态: 已绑定

Python 调用: obj.getSuperMaster()

This function returns a pointer to a pCell superMaster design。

异常

  • oacInvalidSubMaster

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getSuperMaster()

obj.isSuperMaster()

绑定状态: 已绑定

Python 调用: obj.isSuperMaster()

This function returns true if this design represents a pCell superMaster。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.isSuperMaster()

obj.isSubMaster()

绑定状态: 已绑定

Python 调用: obj.isSubMaster()

This function returns true if this design represents a pCell subMaster。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.isSubMaster()

obj.isStdViaMaster()

绑定状态: 已绑定

Python 调用: obj.isStdViaMaster()

This function returns true if this design represents a stdVia master。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.isStdViaMaster()

obj.getPcellDef()

绑定状态: 已绑定

Python 调用: obj.getPcellDef()

This function returns a pointer to an oaPcellDef in this superMaster design。

异常

  • oacInvalidSuperMaster

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getPcellDef()

obj.getPcellEvaluatorName(evalName)

绑定状态: 已绑定

Python 调用: obj.getPcellEvaluatorName(evalName)

This function returns the name of the pcell evaluator associated with this superMaster design。

参数

  • evalName: The returned name of the pcell evaluator associated with this superMaster design。

异常

  • oacInvalidSuperMaster

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getPcellEvaluatorName(evalName)

obj.hasSymmetricConnectivity()

绑定状态: 已绑定

Python 调用: obj.hasSymmetricConnectivity()

This function returns true if this design contains exactly one module, which is a top module, and one block。 If true is returned, it is an indication that the design's connectivity in both the block and module domains is the same, with possible exceptions for block-only objects and hidden block objects。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.hasSymmetricConnectivity()

obj.setCellType(cellType)

绑定状态: 已绑定

Python 调用: obj.setCellType(cellType)

This function sets the cell type for this design。

异常

  • oacInvalidMaster

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.setCellType(cellType)

obj.setTopModule(module, visibleToBlock=true)

绑定状态: 已绑定

Python 调用: obj.setTopModule(module, visibleToBlock=true)

This function sets or resets the top module for this design。 If a valid module is passed in, it will be set as the top module of this design, and a top block will be implicitly created if the visibleToBlock flag is true。 Exceptions will be thrown if the module is invalid (for example, if it belongs to a different design), or if this design already has a top module or is block only。 If a NULL pointer is passed in, the current top module will be unset, and the top module will be deleted if it exists。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.setTopModule(module, visibleToBlock=true)

obj.isScalarized()

绑定状态: 已绑定

Python 调用: obj.isScalarized()

This function returns a boolean indicating whether all the explicit, multi-bit connectivity in any domain of this design are scalarized。 Explicit, multi-bit connectivity is represented by busNets, bundleNets, busTerms, bundleTerms, and vectorInsts that were explicitly created by applications。 Explicit, multi-bit connectivity should be scalarized to insure that any of the corresponding bitNets, bitTerms, and bitInsts are promoted to the explicit state and are available for supporting implementation data。 The corresponding multi-bit connectivity is demoted to the implicit state so that implementation can no longer be associated with them and to restrict explicit modifications that would cause inconsistencies with the single-bit connectivity。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.isScalarized()

obj.scalarize()

绑定状态: 已绑定

Python 调用: obj.scalarize()

This function promotes single-bit connectivity to the explicit state and demotes multi-bit connectivity to the implicit state。 This function should be used to insure that all single-bit connectivity is available for supporting implementation data and to restrict explicit editing the multi-bit connectivity, which could lead to inconsistencies with the constituent bits。 Single-bit connectivity is represented by bit Nets (scalarNets and busNetBits), bitTerms (scalarTerms and busTermBits), bitInsts (scalarInsts and vectorInstBits), and single-bit connections。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.scalarize()

obj.openHier()

绑定状态: 已绑定

Python 调用: obj.openHier()

This function attempts to recursively open the design hierarchy numLevels deep, with this design as the root。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.openHier()

obj.openHier(numLevels)

绑定状态: 已绑定

Python 调用: obj.openHier(numLevels)

This function attempts to recursively open the entire design hierarchy, with this design used as the root。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.openHier(numLevels)

obj.contains(design)

绑定状态: 已绑定

Python 调用: obj.contains(design)

This function determines if this design contains a reference to the specified design。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.contains(design)

obj.hasRecursion()

绑定状态: 已绑定

Python 调用: obj.hasRecursion()

This function returns a boolean indicating whether the design hierarchy starting at this design has recursive loops in it。 When a loop is detected, an on-detect recursion observer notification is issued。 This notification can be observered using an observer derived from oaRecursionObserver 。

返回

  • true If the design contains a recursive loop in its hierarchy。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.hasRecursion()

obj.hasReference(design)

绑定状态: 已绑定

Python 调用: obj.hasReference(design)

This function returns a boolean indicating whether the design hierarchy starting at this design has recursive reference to the specified master。 When such a reference is detected, an on-detect recursion observer notification is issued。 This notification can be observered using an observer derived from oaRecursionObserver 。

参数

  • master: This function looks for a reference to this master design in the hierarchy。

返回

  • true If a reference to the master is found。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.hasReference(design)

obj.defineSuperMaster(def, pa)

绑定状态: 已绑定

Python 调用: obj.defineSuperMaster(def, pa)

This function creates or re-defines a superMaster design。 The existing data in this design remains intact, and pCell parameters and new pcell evaluation interface information are bound to the design。 It is a frequent practice for the superMaster to contain the implementation of the pCell with default parameter values。 If this superMaster design already has existing subMasters, then those subMasters will be reevaluated。 If this call has a different set of parameters than previously existed, or if this design was not previously a supermaster, then all instances bound to this supermaster will be realigned with new submasters as follows: if the instance has any parameters that no longer exist on the superMaster, those parameters are converted to properties on the instance if new parameters are added to this superMaster, then the properties on the instance will checked for a property of the same name which will then be converted to a parameter each instance will be assigned to a new subInstHeader reflecting its new parameterization the new subInstHeaders will be bound to an appropriate new subMaster Note that this process may result in a different grouping of instances to subMasters and a different number of subMasters。

异常

  • oacCannotModifyReadModeDesign
  • oacInvalidSuperMaster
  • oacPcellObserverBindFailed
  • oacPcellInvalidPcellDef
  • oacCannotDefineSuperMasterWithParasitics

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.defineSuperMaster(def, pa)

obj.evalSuperMaster()

绑定状态: 已绑定

Python 调用: obj.evalSuperMaster()

This function uses the default parameter values to populate the superMaster with the contents of the variant of this pCell that is built with those values。 The resulting contents are added to any previous contents of the design。 The primary purpose is to create some contents of the superMaster that are meaningful and viewed in a graphical viewer。 This evaluation has no effect on or relationship to instances of this pCell。

异常

  • oacCannotModifyReadModeDesign
  • oacInvalidSuperMaster
  • oacPcellInvalidPcellDef

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.evalSuperMaster()

obj.undefineSuperMaster()

绑定状态: 已绑定

Python 调用: obj.undefineSuperMaster()

This function converts a pCell superMaster into a regular (non-pCell) design。 The oaPcellDef is discarded and the parameters are converted to oaDesign properties。 All submasters of this supermaster are destroyed, and all instances of those submasters become bound to the former superMaster (which is now neither a subMaster nor a superMaster) instance parameters are converted to properties。 Other contents of the design are not affected。

异常

  • oacCannotModifyReadModeDesign
  • oacInvalidSuperMaster

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.undefineSuperMaster()

obj.findParam(name, param)

绑定状态: 已绑定

Python 调用: obj.findParam(name, param)

This function searches the parameter list of this design for a parameter with the specified name。 If found, it fills out param with the appropriate attributes and returns true。 Otherwise, the function returns false。

异常

  • oacInvalidPcellMaster

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.findParam(name, param)

obj.enableTimeStamps(value=true)

绑定状态: 已绑定

Python 调用: obj.enableTimeStamps(value=true)

This function enables or disables timeStamp modification on this design。 By default, timeStamp modification is enabled。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.enableTimeStamps(value=true)

obj.preAllocate(dataType, numObjs)

绑定状态: 已绑定

Python 调用: obj.preAllocate(dataType, numObjs)

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.preAllocate(dataType, numObjs)

obj.preAllocate(type, numObjs)

绑定状态: 已绑定

Python 调用: obj.preAllocate(type, numObjs)

This function pre-allocates a specified number of objects of the specified dataType。 This is useful for applications that know in advance approximately how many objects of a certain type need creating。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.preAllocate(type, numObjs)

obj.enableUndo(value=true)

绑定状态: 已绑定

Python 调用: obj.enableUndo(value=true)

This function enables or disables undo for this design。 If enabled, all changes made to this design are logged so that undo() can restore the design to earlier states。 If disabled, all undo information is discarded, and changes are not logged。 This function requires the caller to specify a particular model for undo (undoModel)。 OpenAccess supports two undo models: postCheckpoint model, in which checkpoints are set after an action。 preCheckpoint model, in which checkpoints are set before an action。 If postCheckpoint is specified, a call to undo must immediately follow a checkpoint or an exception is thrown。 See Undo and Redo Use Models in OpenAccess for more information。

异常

  • oacDesignInvalidUndoModel

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.enableUndo(value=true)

obj.enableUndo(value, undoModel)

绑定状态: 已绑定

Python 调用: obj.enableUndo(value, undoModel)

This function enables or disables undo for this design。 If enabled, all changes made to this design are logged so that undo() can restore the design to earlier states。 If disabled, all undo information is discarded, and changes are not logged。 This function is deprecated。 It is recommended that applications instead use the enableUndo function that allows specification of a model for undo operations。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.enableUndo(value, undoModel)

obj.redo()

绑定状态: 已绑定

Python 调用: obj.redo()

This function restores the state of the in-memory image of the design database to its state before the last undo。 The records are stored using either a pre-checkpoint or post-checkpoint model。 This call reverses the changes only if undo is enabled, undo() was called for this design, and no changes occurred since the last undo() 。 The redo operation starts from the most recent record and restores the one transaction defined by both the checkpoint and the undo model。 Refer to the Undo and Redo Use Models article for additional information。 If there is an enabled observer on the action that is completed as a result of the redo operation, that observer is called。 In addition, there are observers for the redo operation itself。 Refer to oaDesignUndoObserver for more information。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.redo()

obj.undo()

绑定状态: 已绑定

Python 调用: obj.undo()

This function reverts the changes made to the in-memory image of this design database。 Undo records are stored using either a pre-checkpoint or post-checkpoint model。 This function steps back one checkpoint to the most recent checkpoint and reverses the changes saved in the undo records。 The undo operation starts from the most recent record and reverses the one transaction defined by both the checkpoint and the undo model。 Refer to the Undo and Redo Use Models article for additional information。 If there is an enabled observer on the action that is completed as a result of the undo operation, that observer is called。 In addition, there are observers for the undo operation itself。 Refer to oaDesignUndoObserver for more information。 Note that only changes to managed objects in the oaDesign are undone。 Utility objects that contain pointers to a managed object such as an oaRouteObjectArray are not affected。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.undo()

obj.isUndoEnabled()

绑定状态: 已绑定

Python 调用: obj.isUndoEnabled()

This function determines if undo is currently enabled for this design。

返回

  • true If undo is enabled for this design; false If undo is not enabled for this design。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.isUndoEnabled()

obj.isInUndo()

绑定状态: 已绑定

Python 调用: obj.isInUndo()

This function determines if this design is currently in undo or redo operation。

返回

  • true If this design is currently in an undo or redo operation; false If undo is not currently in an undo or redo operation。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.isInUndo()

obj.setCp()

绑定状态: 已绑定

Python 调用: obj.setCp()

This function sets an undo checkpoint for this design。 A checkpoint marks the current state of this design。 Each call to undo() restores the contents of the design to a previous state when undo is enabled。 The checkpoint has a user-specified ID to assist in keeping track of checkpoints in this design and across multiple designs。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.setCp()

obj.setCp(checkPointID)

绑定状态: 已绑定

Python 调用: obj.setCp(checkPointID)

This function sets an undo checkpoint for this design。 A checkpoint marks the current state of this design。 Each call to undo() restores the contents of the design to a previous state when undo is enabled。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.setCp(checkPointID)

obj.unsetCp()

绑定状态: 已绑定

Python 调用: obj.unsetCp()

This function removes the last checkpoint in this design assuming that there are no actions after the last checkpoint。 In other words, there are no undo records after the last checkpoint。 Otherwise, an exception is thrown。 (Refer to oaDesign::getNumUndoCpRecs() to get the number of undo records after the checkpoint.)。

异常

  • oacUndoNotEnabled
  • oacCannotUnsetNonEmptyCp

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.unsetCp()

obj.getNumUndoCpRecs()

绑定状态: 已绑定

Python 调用: obj.getNumUndoCpRecs()

This function returns the number of undo records on the most recent checkpoint saved for this design。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getNumUndoCpRecs()

obj.getCpID()

绑定状态: 已绑定

Python 调用: obj.getCpID()

This function returns the ID of the last checkpoint set in this design。 If the ID is not set on that checkpoint, this function returns UINT_MAX。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getCpID()

obj.getNumUndoRecsOnCp()

绑定状态: 已绑定

Python 调用: obj.getNumUndoRecsOnCp()

This function returns the number of undo records that will be removed if an undo command is issued。 The value returned depends on the undo model in use。 If the undo model is oacUndoModelPostCheckpoint, the function returns the number of undo records before the last checkpoint。 If the undo model is oacUndoModelPreCheckpoint, the function returns the number of undo records after the last checkpoint。 For more information about undo use models, refer to Undo and Redo Use Models in OpenAccess in the Programmers Guide。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getNumUndoRecsOnCp()

obj.getUndoModel()

绑定状态: 已绑定

Python 调用: obj.getUndoModel()

This function returns the undo model specified when undo is enabled。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getUndoModel()

obj.getEffectiveUndoModel()

绑定状态: 已绑定

Python 调用: obj.getEffectiveUndoModel()

This function returns the undo model if it was explicitly set by the application。 If the undo model was not explicitly set, this function returns the undo model "in effect" based on whether or not the last record on the undo stack is a checkpoint。 If the last record is a checkpoint, the model is assumed to be oacUndoModelPostCheckpoint。 If the last record is not a checkpoint, the model is effectively assumed to be oacUndoModelPreCheckpoint。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getEffectiveUndoModel()

obj.calcVMSize()

绑定状态: 已绑定

Python 调用: obj.calcVMSize()

This function calculates and returns the amount of virtual memory this design is currently using。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.calcVMSize()

obj.minimizeVM()

绑定状态: 已绑定

Python 调用: obj.minimizeVM()

This function minimizes the amount of virtual memory this design is currently using。 It releases dynamically allocated data structures that can be rebuilt as needed。 Applications can call this function after creating an oaDesign or making significant edits to an existing oaDesign, before starting a phase of processing that interacts with the design in different ways。 This function should be called sparingly, as it can have a substantial impact on the performance of subsequent operations。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.minimizeVM()

obj.hasDefaultConstraintGroup()

绑定状态: 已绑定

Python 调用: obj.hasDefaultConstraintGroup()

This function returns a boolean indicating whether or not there is a default constraint group for this design。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.hasDefaultConstraintGroup()

obj.getDefaultConstraintGroup()

绑定状态: 已绑定

Python 调用: obj.getDefaultConstraintGroup()

This function returns the default constraint group for this design。 If no constraints have been set on the default constraint group a new constraint group is created and returned。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getDefaultConstraintGroup()

obj.getFeatures(dataModelRev, features)

绑定状态: 已绑定

Python 调用: obj.getFeatures(dataModelRev, features)

This function returns the data model revision number for the database, as well as an array of the features currently in the database。 The application can iterate through the array to get the ID for each feature present。 Each feature ID corresponds to an oaFeatureIDEnum value。

参数

  • dataModelRev: returned data model revision。
  • features: returned feature array。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getFeatures(dataModelRev, features)

obj.getAnalysisPoints()

绑定状态: 已绑定

Python 调用: obj.getAnalysisPoints()

This function returns a collection of analysisPoints in this design。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getAnalysisPoints()

obj.getSubMasters()

绑定状态: 已绑定

Python 调用: obj.getSubMasters()

This function returns a collection of subMasters in this design。 An oacInvalidSuperMaster exception is thrown if the design is not a superMaster。

异常

  • oacInvalidSuperMaster

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getSubMasters()

obj.getModules()

绑定状态: 已绑定

Python 调用: obj.getModules()

This function returns a collection of modules contained in this design。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getModules()

obj.getModInstHeaders()

绑定状态: 已绑定

Python 调用: obj.getModInstHeaders()

This function returns a collection of oaModInstHeaders -- module domain instHeaders (of design master) objects in this design。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getModInstHeaders()

obj.getUsedIn()

绑定状态: 已绑定

Python 调用: obj.getUsedIn()

This function returns a collection of instHeaders in other open designs that refer to this design as the master。 It does not open any designs or return any information from designs that are only on disk。 This function can be used to traverse "up" a design hierarchy that has been read in to memory。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getUsedIn()

obj.getViaHeaderUsedIn()

绑定状态: 已绑定

Python 调用: obj.getViaHeaderUsedIn()

This function returns a collection of viaHeaders in other opened designs that refer to this design as the master。 It does not open any designs or return any information from designs that are only on disk。 This function can be used to traverse "up" a design hierarchy that has been read in to memory。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getViaHeaderUsedIn()

obj.getGroups(filterFlags=oacGroupIterNoDomain)

绑定状态: 已绑定

Python 调用: obj.getGroups(filterFlags=oacGroupIterNoDomain)

These functions return collections of objects in or associated with this design。

参数

  • def:
  • filterFlags:

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getGroups(filterFlags=oacGroupIterNoDomain)

obj.getGroups(def, filterFlags=oacGroupIterNoDomain)

绑定状态: 已绑定

Python 调用: obj.getGroups(def, filterFlags=oacGroupIterNoDomain)

This function returns the complete set of groups in the design database。 The filter flags may be used to restrict the collection to groups in specific domains out of the module, block, occurrence domains, and the groups with no domain restriction on its members。 The default value of the filterFlags restricts the collection to the groups with no domain specific membership。 Multiple domain flags can be combined and passed in to this function。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getGroups(def, filterFlags=oacGroupIterNoDomain)

obj.getGroupsByName(name, filterFlags=oacGroupIterNoDomain)

绑定状态: 已绑定

Python 调用: obj.getGroupsByName(name, filterFlags=oacGroupIterNoDomain)

This function returns a collection of groups in this design with the specified name。 The filter flags may be used to restrict the search to groups in one specific domain out of the module, block, and occurrence domains, or the groups with no domain restriction on its members。 The default value of the filterFlags restricts the collection to the groups with no domain specific membership。 Exception is thrown if multiple domain selection flags are enabled in the passed-in filter flags。

异常

  • oacInvalidGroupByNameIterFlags

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getGroupsByName(name, filterFlags=oacGroupIterNoDomain)

obj.getAppDefsByDataType(dataType, domain)

绑定状态: 已绑定

Python 调用: obj.getAppDefsByDataType(dataType, domain)

This function returns a collection of oaAppDefs in this design for the specified dataType and domain。

参数

  • dataType: The data type on which to search for appDefs。
  • domain: The domain on which to search for appDefs。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getAppDefsByDataType(dataType, domain)

obj.getAppObjectDefs()

绑定状态: 已绑定

Python 调用: obj.getAppObjectDefs()

This returns a collection of the types of object extensions that are in use in this design。 Object extensions are independent objects that are not tied to a built-in design object。 See oaAppObjectDef for the usage of object extensions。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getAppObjectDefs()

obj.getAppObjects(def)

绑定状态: 已绑定

Python 调用: obj.getAppObjects(def)

This function returns a collection of oaAppObjects in this design for the specified extension。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getAppObjects(def)

obj.getValues()

绑定状态: 已绑定

Python 调用: obj.getValues()

This function returns a collection of values in this database。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getValues()

obj.getConstraintGroups()

绑定状态: 已绑定

Python 调用: obj.getConstraintGroups()

This function returns a collection of constraint groups in this design database that are associated with the specified constraintGroupDef。

参数

  • def: pointer to an oaConstraintGroupDef 。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getConstraintGroups()

obj.getConstraintGroups(def)

绑定状态: 已绑定

Python 调用: obj.getConstraintGroups(def)

This function returns a collection of constraint groups in this database。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getConstraintGroups(def)

obj.getConstraints(def=NULL)

绑定状态: 已绑定

Python 调用: obj.getConstraints(def=NULL)

This function returns a collection of constraints in this design database with the definition specified。 If no definition is specified, all of the constraints are returned。

参数

  • def: Optional Constraint definition to search for。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getConstraints(def=NULL)

obj.getConstraintParams()

绑定状态: 已绑定

Python 调用: obj.getConstraintParams()

This function returns a collection of constraint parameters in this database。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getConstraintParams()

obj.getConstraintGroupHeaders()

绑定状态: 已绑定

Python 调用: obj.getConstraintGroupHeaders()

This function returns a collection of constraint group headers in this database。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getConstraintGroupHeaders()

obj.getViaVariants()

绑定状态: 已绑定

Python 调用: obj.getViaVariants()

This function returns the collection of oaViaVariants associated with this design。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getViaVariants()

obj.getViaVariantHeaders()

绑定状态: 已绑定

Python 调用: obj.getViaVariantHeaders()

This function returns the collection of oaViaVariantHeaders associated with this design。

Python 示例

from oapy._oa import _design

# assume obj is a oaDesign
obj.getViaVariantHeaders()

_design.oaDesign.open(libNameIn, cellNameIn, viewNameIn, viewType, mode)

绑定状态: 已绑定

Python 调用: _design.oaDesign.open(libNameIn, cellNameIn, viewNameIn, viewType, mode)

This function attempts to open the design associated with the specified oaCustomViaDef 。 If the parameter array is specified, the subMaster is returned。 An exception is thrown if the parameter array is specified and the design is not a parameterized cell。 An exception is thrown if no design exists。

核心 OA API。oapy 保持薄绑定;若遇到环境相关创建约束,应在 Python helper/workflow 层规避。

参数

  • viaDef: The custom viaDef。
  • params: The parameter array。

异常

  • oacCannotFindLibrary
  • oacCannotFindDesign

Python 示例

from oapy._oa import _design

# lib/cell/view and viewType must already satisfy the OA environment requirements
design = _design.oaDesign.open(libName, cellName, viewName, viewType, "r")

_design.oaDesign.open(libNameIn, cellNameIn, viewNameIn, mode)

绑定状态: 已绑定

Python 调用: _design.oaDesign.open(libNameIn, cellNameIn, viewNameIn, mode)

This function attempts to return the viaMaster associated with the specified oaStdViaDef object。 If the viaMaster does not exist, one will be generated and returned。 If the via parameter array is not specified, the default parameter associated with the given viaDef is used。

核心 OA API。oapy 保持薄绑定;若遇到环境相关创建约束,应在 Python helper/workflow 层规避。

参数

  • viaDef: The standard viaDef。
  • params: The via parameter array。

Python 示例

from oapy._oa import _design

# lib/cell/view and viewType must already satisfy the OA environment requirements
design = _design.oaDesign.open(libName, cellName, viewName, viewType, "r")

_design.oaDesign.open(libNameIn, cellNameIn, viewNameIn, params)

绑定状态: 已绑定

Python 调用: _design.oaDesign.open(libNameIn, cellNameIn, viewNameIn, params)

This function will find or create a submaster for the given supermaster oaDesign。 If the submaster has already been created it will return it and increment its reference count (see oaDesign::close for a further discussion of reference counts)。 If the supermaster is in memory, but not the appropriate submaster, the submaster will be created。 If the supermaster is not yet open it will search the given library location for an oaDesign of any viewType and open it in ‘r’ead mode。 Then it will create the appropriate submaster。

核心 OA API。oapy 保持薄绑定;若遇到环境相关创建约束,应在 Python helper/workflow 层规避。

异常

  • oacCannotFindLibrary
  • oacCannotFindDesign
  • oacInvalidSuperMaster
  • oacInvalidDatabaseFile
  • oacCorruptedDatabase
  • oacCannotRepairCorruptedAppData
  • oacCorruptedSteinerConnRoutes
  • oacCorruptedMustJoinTerms
  • oacCorruptedSupplySensitivityTerms
  • oacCorruptedGroundSensitivityTerms

Python 示例

from oapy._oa import _design

# lib/cell/view and viewType must already satisfy the OA environment requirements
design = _design.oaDesign.open(libName, cellName, viewName, viewType, "r")

_design.oaDesign.open(viaDef, params=NULL)

绑定状态: 已绑定

Python 调用: _design.oaDesign.open(viaDef, params=NULL)

This function attempts to open the design with the specified library, cell, and view name with the specified access mode。 If successful, the design is returned。 This version looks for a design with any viewType。 This version can be used to open existing designs for reading or modifying。 An exception is thrown if this open function is called to create (write) a new design since each design requires the specification of a viewType when it is created。 When you open a library for 'w'rite, 'a'ppend, or 'A'ppend with this function, the library container is temporarily locked。 If another user attempts to use oaDesign::open to 'w'rite, 'a'ppend, or 'A'ppend to the library, an oacDesignCannotGetWriteAccess exception is thrown。 This behavior protects against another process opening the same library for write or append access。 Note that having a design open for write access does not interfere with another process reading the database。 When you open a database in 'w'rite mode and then save the database, the mode changes to 'a'ppend。 When you open a database in 'A'ppend mode and then save that database, the mode changes to 'a'ppend。 After opening the library for 'w'rite, 'a'ppend, or 'A'ppend, OpenAccess creates a database file and a lock file for you。 After this point, the access to the library container is once again opened for 'w'rite, 'a'ppend, or 'A'ppend mode to other users。 However, anyone attempting to access the locked database file will get an oacCannotLockDatabase exception。 Each open() increments the reference count on this design (see oaDesign::close for a further discussion)。

核心 OA API。oapy 保持薄绑定;若遇到环境相关创建约束,应在 Python helper/workflow 层规避。

参数

  • libNameIn: The name of an existing library。
  • cellNameIn: The name of an existing cell。
  • viewNameIn: The name of an existing design。
  • mode: The mode in which to open the existing design: 'r' for read 'w' for write 'a' for append 'A' for append in override mode, which is not typically used。 Refer to Compatibility for OpenAccess Applications and Data in the Programmers Guide for more information。

返回

  • A pointer to an open design or throws an exception。

异常

  • oacCannotFindLibrary: If the lib name doesn't exist, or in read mode if the cell or view doesn't exist。
  • oacOpenOnDesignBeingPurged
  • oacOpenUndefinedModeDesign: The mode character is illegal。
  • oacInvalidDatabaseFile
  • oacFileNotWritable
  • oacCannotFindDesign
  • oacDataNotCompatibleOnOpen: The design contains new features that are not understood by this version of OpenAccess and cannot be opened。
  • oacDataNotCompatibleOnOpenInAppendMode: The design contains new features that are not understood by this version of OpenAccess and cannot be opened in append mode。
  • oacDesignPrimaryFileDoesNotExist
  • oacDesignFollowerFileDoesNotExist
  • oacDesignCannotGetReadAccess
  • oacLibAccessCannotUpgrade
  • oacDesignHasReadNeedWriteAccess
  • oacDesignCannotGetWriteAccess
  • oacCorruptedDatabase
  • oacCannotRepairCorruptedAppData
  • oacCorruptedSteinerConnRoutes
  • oacCorruptedMustJoinTerms
  • oacCorruptedSupplySensitivityTerms
  • oacCorruptedGroundSensitivityTerms

Python 示例

from oapy._oa import _design

# lib/cell/view and viewType must already satisfy the OA environment requirements
design = _design.oaDesign.open(libName, cellName, viewName, viewType, "r")

_design.oaDesign.open(viaDef, params=NULL)

绑定状态: 已绑定

Python 调用: _design.oaDesign.open(viaDef, params=NULL)

This function attempts to open the design with the specified library, cell, and view name with the specified access mode。 If successful, the design is returned。 This version opens the design using the viewType attribute of the oaViewType object pointed to by viewType。 This version can be used to write a new design since it can assign a viewType to that design。 When used to read or modify a design, it only succeeds if that design was previously created with the specified viewType。 Typically, the design to be opened must be the primary file in the cellView。 However, if the cellView has a non-design viewType, this function can be used to open a non-primary database。 See OpenAccess Libraries and Design Management for more information about primary files。 When you open a library for 'w'rite, 'a'ppend, or 'A'ppend with this function, the library container is temporarily locked。 If another user attempts to use oaDesign::open to 'w'rite, 'a'ppend, or 'A'ppend to the library, an oacDesignCannotGetWriteAccess exception is thrown。 This behavior protects against another process opening the same library for write or append access。 Note that having a design open for write access does not interfere with another process reading the database。 When you open a database in 'w'rite mode and then save the database, the mode changes to 'a'ppend。 When you open a database in 'A'ppend mode and then save that database, the mode changes to 'a'ppend。 After opening the library for 'w'rite, 'a'ppend, or 'A'ppend, OpenAccess creates a database file and a lock file for you。 After this point, the access to the library container is once again opened for 'w'rite, 'a'ppend, or 'A'ppend mode to other users。 However, anyone attempting to access the locked database file will get an oacCannotLockDatabase exception。 Each open() increments the reference count on this design (see oaDesign::close for a further discussion)。 Note: Although users can construct their own oaViewTypes, when opening a design with this function, valid viewTypes are restricted to a subset of oaReservedViewTypes, namely, an oaReservedViewType object constructed with one of the following enumerated constants: oacMaskLayout , oacSchematic , oacSchematicSymbol , oacNetlist , or oacHierDesign 。 An exception is thrown if viewType is not one of these reserved design viewTypes。 Standard practice is to call oaViewType::get(oaReservedViewType) to construct a oaViewType object using one of the valid reserved design viewType enumerated constants, then pass a pointer to the constructed oaViewType object to oaDesign::open() via the viewType parameter。

核心 OA API。oapy 保持薄绑定;若遇到环境相关创建约束,应在 Python helper/workflow 层规避。

参数

  • libNameIn: The name of an existing library。
  • cellNameIn: The name of a cell。
  • viewNameIn: The name of a view。
  • viewType: A pointer to the viewType。
  • mode: The mode in which to open the design: 'r' for read 'w' for write 'a' for append 'A' for append in override mode, which is not typically used。 Refer to Compatibility for OpenAccess Applications and Data in the Programmers Guide for more information。

异常

  • oacCannotFindLibrary: If the lib name doesn't exist, or in read mode if the cell or view doesn't exist。
  • oacOpenOnDesignBeingPurged
  • oacOpenUndefinedModeDesign
  • oacMismatchViewTypeForOpen
  • oacCannotFindDesign
  • oacDataNotCompatibleOnOpen: The design contains new features that are not understood by this version of OpenAccess and cannot be opened。
  • oacDataNotCompatibleOnOpenInAppendMode: The design contains new features that are not understood by this version of OpenAccess and cannot be opened in append mode。
  • oacDesignPrimaryFileDoesNotExist
  • oacDesignFollowerFileDoesNotExist
  • oacInvalidDatabaseFile
  • oacFileNotWritable
  • oacInvalidDesignViewType
  • oacDesignCannotGetReadAccess
  • oacLibAccessCannotUpgrade
  • oacDesignHasReadNeedWriteAccess
  • oacDesignCannotGetWriteAccess
  • oacCorruptedDatabase
  • oacCannotRepairCorruptedAppData
  • oacCorruptedSteinerConnRoutes
  • oacCorruptedMustJoinTerms
  • oacCorruptedSupplySensitivityTerms
  • oacCorruptedGroundSensitivityTerms

Python 示例

from oapy._oa import _design

# lib/cell/view and viewType must already satisfy the OA environment requirements
design = _design.oaDesign.open(libName, cellName, viewName, viewType, "r")

_design.oaDesign.recover(libNameIn, cellNameIn, viewNameIn, type)

绑定状态: 已绑定

Python 调用: _design.oaDesign.recover(libNameIn, cellNameIn, viewNameIn, type)

This function attempts to recover the design using the specified oaSaveRecoverType type of database for the specified library, cell, and view。 If the recover type exists for the design, the design is opened in read-only mode and read into memory。 If this function is called with the oaSaveRecoverType of oacCriticalSaveType, and the critical save type file does not exist, an exception is thrown。

参数

  • libNameIn: The name of the library in which the cell is located。
  • cellNameIn: The name of the design to recover。
  • viewNameIn: The name of the cellView for the design to recover。
  • type: The recover file type。

异常

  • oacCannotFindLibrary
  • oacRecoverFileDoesNotExist
  • oacRecoverFileAlreadyOpened
  • oacCannotFindDesign
  • oacInterfaceException

Python 示例

from oapy._oa import _design

_design.oaDesign.recover(libNameIn, cellNameIn, viewNameIn, type)

_design.oaDesign.find(libNameIn, cellNameIn, viewNameIn)

绑定状态: 已绑定

Python 调用: _design.oaDesign.find(libNameIn, cellNameIn, viewNameIn)

This function attempts to find a design with the specified library, cell, and view names。 If the specified design is open, it is returned。 Otherwise, NULL is returned。 Calling find() does not increment the reference count for the design。

Python 示例

from oapy._oa import _design

_design.oaDesign.find(libNameIn, cellNameIn, viewNameIn)

_design.oaDesign.exists(libNameIn, cellNameIn, viewNameIn)

绑定状态: 已绑定

Python 调用: _design.oaDesign.exists(libNameIn, cellNameIn, viewNameIn)

This function returns true if the specified oaSaveRecoverType file is found on disk。

参数

  • libNameIn: The name of the library where the cell is located。
  • cellNameIn: The name of the design for which the recover type is checked。
  • viewNameIn: The name of the cellView。
  • type: The recover type of either oacAutoSaveType or oacCriticalSaveType。

异常

  • oacDestroyCannotFindDesign
  • oacInterfaceException

Python 示例

from oapy._oa import _design

_design.oaDesign.exists(libNameIn, cellNameIn, viewNameIn)

_design.oaDesign.exists(libNameIn, cellNameIn, viewNameIn, type)

绑定状态: 已绑定

Python 调用: _design.oaDesign.exists(libNameIn, cellNameIn, viewNameIn, type)

This function returns true if a design is currently open with the specified library, cell, and view names, or if the design is found on disk。 If the design is found on disk, the design must have a non-zero size。 Note: This function is not limited to the viewTypes valid for design databases。 Even if this function returns true, open() will throw an exception if the viewType of the cellView is not a valid design viewType。 See open() for more information。

Python 示例

from oapy._oa import _design

_design.oaDesign.exists(libNameIn, cellNameIn, viewNameIn, type)

_design.oaDesign.destroy(libNameIn, cellNameIn, viewNameIn)

绑定状态: 已绑定

Python 调用: _design.oaDesign.destroy(libNameIn, cellNameIn, viewNameIn)

This function attempts to remove the specified recover file from disk。 It throws an exception if the file is not found。

参数

  • libName: The library in which the cell is located。
  • cellName: The name of the design for the specified recover file。
  • viewName: The name of the cellView for the design。
  • type: The type of recover file to remove。

异常

  • oacLibNotFound
  • oacDestroyCannotFindDesign
  • oacSaveRecoverFileDoesNotExistOnDisk

Python 示例

from oapy._oa import _design

_design.oaDesign.destroy(libNameIn, cellNameIn, viewNameIn)

_design.oaDesign.destroy(libNameIn, cellNameIn, viewNameIn, type)

绑定状态: 已绑定

Python 调用: _design.oaDesign.destroy(libNameIn, cellNameIn, viewNameIn, type)

This function removes the on-disk design data。 The design must exist, and must not currently be open。

异常

  • oacDestroyCannotFindDesign
  • oacDestroyDesignOpen

Python 示例

from oapy._oa import _design

_design.oaDesign.destroy(libNameIn, cellNameIn, viewNameIn, type)

_design.oaDesign.getRevNumber()

绑定状态: 已绑定

Python 调用: _design.oaDesign.getRevNumber()

This function returns the revision number of the internal format for the design format。

返回

  • oaUInt4。

Python 示例

from oapy._oa import _design

_design.oaDesign.getRevNumber()

_design.oaDesign.getOpenDesigns()

绑定状态: 已绑定

Python 调用: _design.oaDesign.getOpenDesigns()

This function returns a collection of open designs。

Python 示例

from oapy._oa import _design

_design.oaDesign.getOpenDesigns()