### Get Guides API Retrieves the collection of guides associated with a network. Optionally includes or excludes route guides. ```APIDOC ## POST /websites/120_25_194_125_0e7d5b1d-a260-4694-b103-a0e5c0ea5f46/getGuides ### Description Returns the collection of guides associated with this network. The optional Boolean parameter ‘includeRouteGuides’ allows the application to customize the guide collection by including or excluding guides that are part of the route on this network. The default behavior is to return all guidelines that may be explicit or implicit on this net. ### Method POST ### Endpoint /websites/120_25_194_125_0e7d5b1d-a260-4694-b103-a0e5c0ea5f46/getGuides ### Parameters #### Request Body - **includeRouteGuides** (emyBoolean, optional) - Default = True - Allows application to include or exclude the guides that may be part of routes on this net ### Response #### Success Response (200) - **emyCollection_emyGuide_emyNet** - Returns the collection of guides associated with this network #### Response Example ```json { "result": "" } ``` ``` -------------------------------- ### EmyLPPHeader - initSystemLPPHeaders Initializes system LPP headers. ```APIDOC ## EmyLPPHeader - initSystemLPPHeaders ### Description Initializes system LPP headers. ### Method POST ### Endpoint /EmyLPPHeader/initSystemLPPHeaders ### Parameters None ### Request Example ```python # pyAether.EmyLPPHeader.initSystemLPPHeaders() ``` ### Response #### Success Response (200) - **status** (string) - Indicates successful initialization. ``` -------------------------------- ### Get Start Index Retrieves the starting index of the vector instance. ```APIDOC ## GET /vectorinst/start ### Description Returns the start index of this vectorInst. ### Method GET ### Endpoint /vectorinst/start ### Parameters None ### Request Example None ### Response #### Success Response (200) - **start_index** (emyUInt4) - The starting index of the vector instance. #### Response Example { "start_index": 10 } ``` -------------------------------- ### EmyGuide Class Methods Documentation for the methods available on the emyGuide class. ```APIDOC ## create ### Description Creates a guide object in the given block with the given attributes. ### Method `create(block: emyBlock, beginPoint: emyPoint, endPoint: emyPoint, beginLayer: emyLayerNum = emcAnyLayerNum, endLayer: emyLayerNum = emcAnyLayerNum) -> emyGuide` ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **block** (emyBlock) - Required - The block in which to create this guide. - **beginPoint** (emyPoint) - Required - The beginning point for this guide. - **endPoint** (emyPoint) - Required - The end point for this guide. It may be the same as the begin point. - **beginLayer** (emyLayerNum) - Optional (Default = emcAnyLayerNum) - An optional begin layer number for this guide. - **endLayer** (emyLayerNum) - Optional (Default = emcAnyLayerNum) - An optional end layer number for this guide. ### Request Example ```json { "block": "", "beginPoint": "", "endPoint": "", "beginLayer": 1, "endLayer": 2 } ``` ### Response #### Success Response (200) - **emyGuide** (emyGuide) - The created guide object. #### Response Example ```json { "guide": "" } ``` ## followLayers ### Description Returns a bool indicating whether the layers specified must be followed when attempting to replace this guide with physical routing. ### Method `followLayers() -> emyBoolean` ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **result** (emyBoolean) - True if layers must be followed, False otherwise. #### Response Example ```json { "result": true } ``` ## getBeginLayerHeader ### Description Returns the layerHeader for the beginning layer of this guide. None is returned if there is no specific begin layer associated with this guide. ### Method `getBeginLayerHeader() -> emyLayerHeader` ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **layerHeader** (emyLayerHeader) - The layer header of the beginning layer. #### Response Example ```json { "layerHeader": "" } ``` ## getBeginLayerNum ### Description Returns the layer number where this guide begins. An emcAnyLayerNum value is returned if one hasn’t been specified. ### Method `getBeginLayerNum() -> emyLayerNum` ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **layerNum** (emyLayerNum) - The beginning layer number. #### Response Example ```json { "layerNum": 1 } ``` ## getEndLayerHeader ### Description Returns the layerHeader for the end layer of this guide. None is returned if there is no specific end layer associated with this guide. ### Method `getEndLayerHeader() -> emyLayerHeader` ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **layerHeader** (emyLayerHeader) - The layer header of the end layer. #### Response Example ```json { "layerHeader": "" } ``` ## getEndLayerNum ### Description Returns the end layer number of this guide. An emcAnyLayerNumValue value is returned if one hasn’t been specified. ### Method `getEndLayerNum() -> emyLayerNum` ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **layerNum** (emyLayerNum) - The end layer number. #### Response Example ```json { "layerNum": 2 } ``` ## getPoints ### Description Returns the beginning and end points for this guide in the given emyPoint parameters. ### Method `getPoints(beginPoint: emyPoint, endPoint: emyPoint)` ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **beginPoint** (emyPoint) - Required - The begin point is returned in this parameter. - **endPoint** (emyPoint) - Required - The end point is returned in this parameter. ### Request Example ```json { "beginPoint": "", "endPoint": "" } ``` ### Response #### Success Response (200) - **message** (string) - Indicates the points have been retrieved. #### Response Example ```json { "message": "Points retrieved successfully." } ``` ## getRoute ### Description Returns the route this guide is attached to. None is returned if this guide is not attached to a route. ### Method `getRoute() -> emyRoute` ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **route** (emyRoute) - The route object if attached, otherwise null. #### Response Example ```json { "route": "" } ``` ## hasRoute ### Description Returns a bool indicating whether this guide belongs to a route. True is returned if the guide belongs to a route; False otherwise. ### Method `hasRoute() -> emyBoolean` ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **hasRoute** (emyBoolean) - True if the guide belongs to a route, False otherwise. #### Response Example ```json { "hasRoute": true } ``` ## setBeginLayerNum ### Description Changes the beginning layer for this guide. ### Method `setBeginLayerNum(layer: emyLayerNum)` ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **layer** (emyLayerNum) - Required - The layer number of the new begin layer for this guide. ### Request Example ```json { "layer": 1 } ``` ### Response #### Success Response (200) - **message** (string) - Indicates the begin layer has been updated. #### Response Example ```json { "message": "Begin layer updated successfully." } ``` ## setEndLayerNum ### Description Changes the end layer for this guide. ### Method `setEndLayerNum(layer: emyLayerNum)` ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **layer** (emyLayerNum) - Required - The layer number of the new end layer for this guide. ### Request Example ```json { "layer": 2 } ``` ### Response #### Success Response (200) - **message** (string) - Indicates the end layer has been updated. #### Response Example ```json { "message": "End layer updated successfully." } ``` ## setFollowLayers ### Description Changes the following layers attribute for this guide to the specified value. ### Method `setFollowLayers(value: emyBoolean)` ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **value** (emyBoolean) - Required - The new value for the following layers attribute. ### Request Example ```json { "value": true } ``` ### Response #### Success Response (200) - **message** (string) - Indicates the follow layers attribute has been updated. #### Response Example ```json { "message": "Follow layers attribute updated successfully." } ``` ## setPoints ### Description Changes the beginning and end points for this guide. ### Method `setPoints(beginPoint: emyPoint, endPoint: emyPoint)` ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **beginPoint** (emyPoint) - Required - The new beginning point for this guide. - **endPoint** (emyPoint) - Required - The new end point for this guide. ### Request Example ```json { "beginPoint": "", "endPoint": "" } ``` ### Response #### Success Response (200) - **message** (string) - Indicates the points have been updated. #### Response Example ```json { "message": "Points updated successfully." } ``` ``` -------------------------------- ### Register Timer with Python (pyAether) Schedules a command to be executed after a specified delay using the aeRegTimer function. This example shows how to register a command and observe its execution after the delay. Ensure pyAether is installed and any aether-related commands are started in advance. ```python import pyAether as pyScript import time a = 0 cmd = pyScript.emyString("a = 5") pyScript.aeRegTimer(cmd, 50) time.sleep(3) print(a) time.sleep(3) print(a) ``` -------------------------------- ### Start Reference Initiates a reference with optional row and column parameters. ```APIDOC ## POST /startRef ### Description Initiates a reference with optional row and column parameters. ### Method POST ### Endpoint /startRef ### Parameters #### Request Body - **ref** (emyRef) - Required - The reference object to start. - **row** (emyUInt4) - Optional (Default = 0) - The row index for the reference. - **col** (emyUInt4) - Optional (Default = 0) - The column index for the reference. ### Request Example ```json { "ref": {"name": "REF_CELL"}, "row": 5, "col": 10 } ``` ### Response #### Success Response (200) - **result** (emyBoolean) - Indicates success or failure of starting the reference. #### Response Example ```json { "result": true } ``` ``` -------------------------------- ### POST /create_instterm_single Creates a single InstTerm connecting a specified instance terminal to a net. ```APIDOC ## POST /create_instterm_single ### Description Creates an instTerm that connects a terminal at the specified position in the master of the given instance to the specified net. The instTerms related to the instance must all be connected either by name or by position. ### Method POST ### Endpoint `/create_instterm_single` ### Parameters #### Request Body - **net** (emyNet) - Required - The net to use for the connection; it may be None. - **inst** (emyInst) - Required - The instance to connect to. - **termPosition** (emyUInt4) - Required - A terminal's position to be connected in the instance master. - **view** (emyBlockDomainVisibility) - Optional - Sets whether the instTerm is visible to the module domain. Defaults to emcInheritFromTopBlock. ### Request Example ```json { "net": "", "inst": "", "termPosition": 10, "view": "emcViewTop" } ``` ### Response #### Success Response (200) - **emyInstTerm** (emyInstTerm) - The created InstTerm object. #### Response Example ```json { "emyInstTerm": "" } ``` #### Error Responses - **emcNetAndInstNotInSameDesign**: The net and instance are not in the same design. - **emcInstTermAlreadyExists**: An InstTerm with the same name already exists. - **emcInstTermBitAlreadyExists**: A bit of the InstTerm already exists. - **emcInstTermInstMustBeInUniqueOccHier**: The instance must be in a unique occurrence hierarchy. - **emcInstTermNetMustBeInUniqueOccHier**: The net must be in a unique occurrence hierarchy. - **emcPhysOnlyInstTermNetMustBeInSameOcc**: Physical-only InstTerm net must be in the same occurrence. ``` -------------------------------- ### Get Start Value for MdePlatParamSweepStartStop Retrieves the start value from an MdePlatParamSweepStartStop object. This method returns a string representing the start value. ```Python stepmode = pyScript.MdePlatSweepStepModeAuto("12") startstop = pyScript.MdePlatParamSweepStartStop("1", "10", stepmode, ["12", "13"], ["8"]) startstop.getStartValue() ``` -------------------------------- ### Get Start Coordinate Retrieves the starting coordinate of the trackPattern. This coordinate defines the origin for the placement of the tracks, whether they are horizontally or vertically oriented. ```pseudocode getStartCoord() -> emyCoord ``` -------------------------------- ### open Opens an existing library with specified parameters. ```APIDOC ## open ### Description Opens the existing library using the supplied path, name, and attributes. If the library is already open, a emcCannotOpenOpenedLib exception is raised. ### Method POST ### Endpoint /open ### Parameters #### Request Body - **name** (emyScalarName) - The name of the library. - **libPath** (emyString) - The library directory's path (absolute or relative). - **writePath** (emyString, optional) - The path for the opened library to write to. Defaults to "". - **mode** (emyLibMode, optional) - The library's access mode. Defaults to emcSharedLibMode. ### Request Example ```json { "name": "MyLibrary", "libPath": "/path/to/library", "writePath": "/path/to/temp", "mode": "emcExclusiveLibMode" } ``` ### Response #### Success Response (200) - **library** (emyLib) - An object representing the opened library. #### Response Example ```json { "library": { "libId": "openedLib1", "name": "MyLibrary" } } ``` #### Errors - **emcCannotOpenOpenedLib**: Thrown if the library is already open. ``` -------------------------------- ### head - Get Head Point Returns the starting point (head) of the emySegmentF object as an emyPointF. ```APIDOC ## head ### Description Returns the header pointF of the emySegmentF object. ### Method head ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **emyPointF** (object) - The starting point of the segment. #### Response Example ```json { "point": {"x": 0.0, "y": 0.0} } ``` ``` -------------------------------- ### emyLib - create Creates a new library with the specified name, path, and optional attributes. Files are generated in the provided libPath. ```APIDOC ## create ### Description Uses the specified name and attributes to create the library. The library files will be produced in the directory indicated by libPath. ### Method POST ### Endpoint /emyLib/create ### Parameters #### Request Body - **name** (emyScalarName) - Required - The name of the new library. - **libPath** (emyString) - Required - The library directory's path, either absolute or relative. The library files will be created in the designated directory. - **mode** (emyLibMode, optional) - The library's access mode for creating. Default: emcSharedLibMode. - **dmSystem** (emyString, optional) - The dmSystem name of created library. Default: "emyDMSystem". - **dmAttrList** (emyDMAttrArray, optional) - The new library will be given a list of persistent properties. Default: None. ### Request Example ```json { "method": "create", "name": "myNewLibrary", "libPath": "/path/to/libraries", "mode": "emcExclusiveLibMode", "dmSystem": "myDMSystem", "dmAttrList": ["attr1", "attr2"] } ``` ### Response #### Success Response (200) - **emyLib** - An object representing the newly created library. #### Response Example ```json { "library": { "name": "myNewLibrary", "path": "/path/to/libraries/myNewLibrary" } } ``` #### Raises - **emcLibNameExists** - A library with the specified name already exists. ``` -------------------------------- ### DC Analysis Setup Configures and enables DC analysis for simulations. ```APIDOC ## DC Analysis Setup ### Description Configures and enables DC analysis for simulations, including setting sweep variables, ranges, and specific points. ### Method Implied by the example code, involves interacting with `MdeDcAnalysis` and `MdeSetting` objects. ### Endpoint N/A (Python library function) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body N/A ### Request Example ```python import pyAether as ae mde = ae.MdeSession_attachToGui(ae.mdeGetLastActiveWindowId()) setting = mde.getSetting() dc = ae.MdeDcAnalysis() dc.setSaveDcOperatingPointStatus(False) dc.setHysteresisSweep(True) swepVar = ae.MdeSweepVariable() sweepVar.mode = ae.MDE_SWEEP_VARIABLE_MODEL_PARAMETER sweepVar.modelName = "C0" sweepVar.modelParameterName = "I0" dc.setSweepVariable(sweepVar) sr = ae.MdeSweepRange() sr.mode = ae.MDE_SWEEP_RANGE_CENTER_SPAN sr.center = "10" sr.span = "10" dc.setSweepRange(sr) st = ae.MdeSweepType() st.mode = ae.MDE_SWEEP_TYPE_LOG st.logMode = ae.MDE_SWEEP_TYPE_LOG_NUM_STEP st.numberOfStepsForLog = "10" dc.setSweepType(st) sp = ae.MdeAddSpecificPoints() sp.addSpecificPointsStatue = True sp.specificPoints = "I0 I1" dc.setAddSpecificPoints(sp) setting.setDcAnalysis(dc) setting.enableDcAnalysis() ``` ### Response #### Success Response (200) N/A (Function returns implicitly) #### Response Example N/A ``` -------------------------------- ### getDeltaY - Get Delta Y Returns the difference in the y-direction between the start and end points of the emySegmentF object. ```APIDOC ## getDeltaY ### Description Returns the difference D-value between the emySegmentF object in the y direction. ### Method getDeltaY ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **emyDouble** (double) - An emyDouble value representing the difference in y. #### Response Example ```json { "deltaY": 7.5 } ``` ``` -------------------------------- ### getStart() Retrieves the starting index of the emyBusTerm object. ```APIDOC ## GET getStart() ### Description Return the starting index of the current emyBusTerm object. ### Method GET ### Endpoint /websites/120_25_194_125_0e7d5b1d-a260-4694-b103-a0e5c0ea5f46/getStart ### Response #### Success Response (200) - **result** (emyUInt4) - The starting index for this emyBusTerm #### Response Example ```json { "result": 0 } ``` ``` -------------------------------- ### getDeltaX - Get Delta X Returns the difference in the x-direction between the start and end points of the emySegmentF object. ```APIDOC ## getDeltaX ### Description Returns the difference D-value between the emySegmentF object in the x direction. ### Method getDeltaX ### Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **emyDouble** (double) - An emyDouble value representing the difference in x. #### Response Example ```json { "deltaX": 5.0 } ``` ``` -------------------------------- ### Install App Example using pyAether This example demonstrates how to use the geInstallApp function from the pyAether library. It initializes Aether, opens a new window, and then calls geInstallApp to set the window to 'level1'. ```Python import pyAether as ae ae.emyInitAether("-adv") cv = ae.dbOpenCV("test_ppar", "top", "layout") wid = ae.aeOpenWindow(cv) ae.geInstallApp(wid, "level1") ``` -------------------------------- ### Get Label Alignment - Python Example This Python snippet demonstrates how to use the getLabelAlign function. It initializes term type and orientation, then calls getLabelAlign to get the text alignment. Dependencies include the pyScript library. ```python termType = pyScript.emyTermType(pyScript.emcInputOutputTermType) orient = pyScript.emyOrient() align = pyScript.getLabelAlign(termType, orient) ``` -------------------------------- ### init Initializes the EmyCdfManager. ```APIDOC ## init ### Description This method initializes the EmyCdfManager. ### Method N/A (This appears to be a method within a class, not a direct API endpoint) ### Endpoint N/A ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **Return Value** - None. #### Response Example ```json { "status": "initialized" } ``` ``` -------------------------------- ### EMYStdVia Class Methods Documentation for the methods available in the emyStdVia class. ```APIDOC ## POST /emyStdVia/create ### Description Creates a standard via with the specified arguments. The non-default argument from params overrides the baseline set of parameters connected with viaDef. ### Method POST ### Endpoint /emyStdVia/create ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **block** (emyBlock) - Required - Specifies block to create the standard via. - **viaDef** (emyStdViaDef) - Required - Specifies emyStdViaDef which is the standard via params related to the emyStdViaDef (params that used in creation of emyStdViaDef) then generates a baseline default set of parameter values that used in creation of the via. - **xform** (emyTransform) - Required - Specifies transform to create the standard via. - **params** (emyViaParam) - Optional - Using given params argument to set the baseline default parameters that from the emyStdViaDef. Using the default values by specifies argument is None. If params is not None, only non-default values will be set to. when params default flag bit is set, the corresponding parameter of emyStdViaDef can be used to create the via. ### Request Example ```json { "block": "emyBlock_instance", "viaDef": "emyStdViaDef_instance", "xform": "emyTransform_instance", "params": "emyViaParam_instance (optional)" } ``` ### Response #### Success Response (200) - **emyStdVia** (emyStdVia) - The created standard via object. #### Response Example ```json { "emyStdVia": "created_via_instance" } ``` #### Error Handling - **emcViaDefNotInTechconnectedWithDesign**: Throws an exception when using emyViaDef to creation of the via that object not contained in referenced graph in technology databases which with via connected to the design. - **emcConflictingViaDefsInTechconnectedWithDesign**: Throws an exception when the viaDef name conflict occurs in technology database’s referenced graph. - **emcStdViaDefSameNameAsCustomViaDef**: Throws an exception when using emyStdViaDef to creation of the via with an existing name in customViaHeader. - **emcInvalidStdViaGeometry**: Throws an exception if the parameters provided could cause an inverted layer or enclosure shape creation. ``` ```APIDOC ## GET /emyStdVia/{id}/getHeader ### Description Returns the standard via header connected with the specified standard via. ### Method GET ### Endpoint /emyStdVia/{id}/getHeader ### Parameters #### Path Parameters - **id** (string) - Required - The identifier of the standard via. #### Query Parameters None #### Request Body None ### Request Example ```json {} ``` ### Response #### Success Response (200) - **emyStdViaHeader** (emyStdViaHeader) - The standard via header object. #### Response Example ```json { "viaHeader": "header_instance" } ``` ``` ```APIDOC ## POST /emyStdVia/getViaParams ### Description Returns the standard via parameters connected with the specified standard via by the given params parameter. ### Method POST ### Endpoint /emyStdVia/getViaParams ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **params** (emyViaParam) - Required - The via parameters object. ### Request Example ```json { "params": "emyViaParam_instance" } ``` ### Response #### Success Response (200) - **(Implicit)** The function returns the parameters associated with the provided params object, typically by modifying or returning a representation of the via's parameters. #### Response Example ```json { "returnedParams": "corresponding_parameters" } ``` ``` ```APIDOC ## POST /emyStdVia/setViaParams ### Description Sets the standard via parameters connected with the given standard via. This function only sets non-default values of params. Using the emyStdViaDef’s baseline default parameter value creates an emyStdVia when the parameter’s default flag bit is set to. ### Method POST ### Endpoint /emyStdVia/setViaParams ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **params** (emyViaParam) - Required - The via parameters object to set. ### Request Example ```json { "params": "emyViaParam_instance" } ``` ### Response #### Success Response (200) - **(Implicit)** The function applies the provided parameters to the standard via. #### Response Example ```json { "status": "success" } ``` #### Error Handling - **emcInvalidStdViaGeometry**: Throws an exception when the given params argument could cause an inverted layer or enclosure shape creation. ``` -------------------------------- ### Get GDS Number String of EmyLPPHeader in Python This example shows how to retrieve the GDS number as a string from an EmyLPPHeader object. It involves creating an EmyLPPHeader instance and then calling the getGDSNumStr method to get the GDS number string. ```python import pyAether lpp_header = pyAether.EmyLPPHeader.create(None, 1, 12) res = lpp_header.getGDSNumStr() ``` -------------------------------- ### Get Polygon Boundary with Python This Python example demonstrates how to use the emyPointArraysGetBoundary function. It initializes an emyPointArray, appends points to define a polygon, adds it to an emyArray_emyPointArray, and then calls the function to get the boundary. Dependencies include the pyAether library. ```python import pyAether pa = pyAether.emyPointArray() pa.append((0, 0)) pa.append((0, 10)) pa.append((4, 10)) pa.append((4, 0)) polygonsIn = pyAether.emyArray_emyPointArray() polygonsIn.append(pa) polyOut = pyAether.emyPointArray() pyAether.emyPointArraysGetBoundary(polygonsIn, polyOut) ``` -------------------------------- ### EmyInstPropDisplay Creation API This section details the creation of an EmyInstPropDisplay object, specifying its associated instance, master property, and various visual and formatting properties. ```APIDOC ## POST /emydk/instpropdisplay ### Description Creates an instPropDisplay object for the specified prop object in the specified instance’s master. ### Method POST ### Endpoint /emydk/instpropdisplay ### Parameters #### Request Body - **inst** (emyInst) - Required - The emyInst object to which this textDisplay is related. - **masterProp** (emyProp) - Required - The property related to this instPropDisplay object. - **layerNum** (emyLayerNum) - Required - The layer number for this textDisplay. - **purposeNum** (emyPurposeNum) - Required - The purpose number for this textDisplay. - **origin** (emyPoint) - Required - The origin point of this textDisplay shape. - **alignment** (emyTextAlign) - Required - The alignment related to the origin. - **orient** (emyOrient) - Required - The orientation of this textDisplay shape. - **font** (emyFont) - Required - The font used to display textDisplay shape. - **height** (emyDist) - Required - The height of this display. - **format** (emyTextDisplayFormat) - Optional - The format used to create the textDisplay. Default = emcNameTextDisplayFormat. - **overbar** (emyBoolean) - Optional - Sets whether this textDisplay has an overbar. Default = False. - **visible** (emyBoolean) - Optional - Sets whether this textDisplay is actually displayed. Default = True. - **drafting** (emyBoolean) - Optional - Sets the drafting of this textDisplay shape. Default = True. ### Response #### Success Response (200) - **instancePropDisplay** (emyInstPropDisplay) - The created instPropDisplay object. #### Error Response (400) - **error** (string) - emcNoMasterForTextDisplay: Indicates that no master is found for the text display. ``` -------------------------------- ### emyInstQuery Methods Documentation for the methods available in the emyInstQuery class. ```APIDOC ## endRef ### Description Called by the query, if startRef returned true for the reference and after the specified reference is processed. If the reference is an arrayInst, each element of the array that overlaps the query region will be processed separately, in which case ‘row’ and ‘col’ represent which element is being processed. If the maximum dimension of the ref’s master is smaller than the filter size specified for the query, this reference will not be processed. In this case, neither startRef, nor endRef will be called for the reference. The user may override this function to be notified of the event. ### Method `endRef(ref: emyRef, row: emyUInt4 = 0, col: emyUInt4 = 0)` ### Parameters #### Path Parameters - None #### Query Parameters - None #### Request Body - None ### Request Example ```json { "example": "No request body for this method" } ``` ### Response #### Success Response (200) - None (This is a callback method) #### Response Example ```json { "example": "No response body for this method" } ``` ## getCurrentRegion ### Description Returns the current region which is being find in the reference frame of the design that is currently being processed. If the query region specified by the caller completely contains the design that is being processed, the current region will be the bounding box of the top block of that design. ### Method `getCurrentRegion() -> emyBox` ### Parameters #### Path Parameters - None #### Query Parameters - None #### Request Body - None ### Request Example ```json { "example": "No request body for this method" } ``` ### Response #### Success Response (200) - **emyBox** (emyBox) - The current bounding box region. #### Response Example ```json { "example": "{ x1: 10, y1: 10, x2: 100, y2: 100 }" } ``` ## getCurrentTransform ### Description Returns the current transformation of this query object in the reference frame of the design currently being processed. ### Method `getCurrentTransform() -> emyTransform` ### Parameters #### Path Parameters - None #### Query Parameters - None #### Request Body - None ### Request Example ```json { "example": "No request body for this method" } ``` ### Response #### Success Response (200) - **emyTransform** (emyTransform) - The current transformation matrix. #### Response Example ```json { "example": "{ xx: 1, yx: 0, xy: 0, yy: 1, dx: 0, dy: 0 }" } ``` ## getHierPath ### Description Returns the current hierarchical path of this query object. ### Method `getHierPath(hierPath: emyHierPath)` ### Parameters #### Path Parameters - None #### Query Parameters - None #### Request Body - None ### Request Example ```json { "example": "No request body for this method" } ``` ### Response #### Success Response (200) - None (This method appears to modify the provided hierPath object) #### Response Example ```json { "example": "No response body for this method" } ``` ## getRegion ### Description Returns the region that is being find to produce objects in a design hierarchy. This is region specified through the query call. If a transform is specified for the query, the specified region is transformed by the specified transform which is then returned by this function. The bBox returned by this function does not change till the query is completed. ### Method `getRegion() -> emyBox` ### Parameters #### Path Parameters - None #### Query Parameters - None #### Request Body - None ### Request Example ```json { "example": "No request body for this method" } ``` ### Response #### Success Response (200) - **emyBox** (emyBox) - The specified region for the query. #### Response Example ```json { "example": "{ x1: 0, y1: 0, x2: 200, y2: 200 }" } ``` ## getRegionQuery ### Description Returns the emyRegionQuery object of this query object. ### Method `getRegionQuery() -> emyRegionQuery` ### Parameters #### Path Parameters - None #### Query Parameters - None #### Request Body - None ### Request Example ```json { "example": "No request body for this method" } ``` ### Response #### Success Response (200) - **emyRegionQuery** (emyRegionQuery) - The region query object. #### Response Example ```json { "example": "" } ``` ## getTopDesign ### Description Returns the top design from which this query was started. ### Method `getTopDesign() -> emyDesign` ### Parameters #### Path Parameters - None #### Query Parameters - None #### Request Body - None ### Request Example ```json { "example": "No request body for this method" } ``` ### Response #### Success Response (200) - **emyDesign** (emyDesign) - The top design object. #### Response Example ```json { "example": "" } ``` ## query (version 1) ### Description Begins the query process to start generating instances in the specified region of the specified design hierarchy. ### Method `query(topDesign: emyDesign, region: emyBox, filterSize: emyDist = 0, startLevel: emyUInt4 = 0, stopLevel: emyUInt4 = 100)` ### Parameters #### Path Parameters - None #### Query Parameters - **topDesign** (emyDesign) - Required - The top design object in which to perform the query. - **region** (emyBox) - Required - The region of interest. - **filterSize** (emyDist) - Optional (Default = 0) - Only query objects whose size is equal to or larger than filterSize. - **startLevel** (emyUInt4) - Optional (Default = 0) - The level of block hierarchy to start the querying. - **stopLevel** (emyUInt4) - Optional (Default = 100) - The level of block hierarchy to end the querying. #### Request Body - None ### Request Example ```json { "example": "No request body for this method" } ``` ### Response #### Success Response (200) - None (This method initiates a query process, results are handled by other methods like `queryInst`) #### Response Example ```json { "example": "No response body for this method" } ``` ## query (version 2) ### Description Begins the query process to start generating instances in the specified region of the specified design hierarchy with a specified transform. ### Method `query(topDesign: emyDesign, region: emyBox, xform: emyTransform, filterSize: emyDist = 0, startLevel: emyUInt4 = 0, stopLevel: emyUInt4 = 100)` ### Parameters #### Path Parameters - None #### Query Parameters - **topDesign** (emyDesign) - Required - The top design object in which to perform the query. - **region** (emyBox) - Required - The region of interest. - **xform** (emyTransform) - Required - The transform that is currently applied to the design. - **filterSize** (emyDist) - Optional (Default = 0) - Only query objects whose size is equal to or larger than filterSize. - **startLevel** (emyUInt4) - Optional (Default = 0) - The level of block hierarchy to start the querying. - **stopLevel** (emyUInt4) - Optional (Default = 100) - The level of block hierarchy to end the querying. #### Request Body - None ### Request Example ```json { "example": "No request body for this method" } ``` ### Response #### Success Response (200) - None (This method initiates a query process, results are handled by other methods like `queryInst`) #### Response Example ```json { "example": "No response body for this method" } ``` ## queryInst ### Description Processes each result of the instance query. ### Method `queryInst(inst: emyInst)` ### Parameters #### Path Parameters - None #### Query Parameters - None #### Request Body - None ### Request Example ```json { "example": "No request body for this method" } ``` ### Response #### Success Response (200) - None (This is a callback method for handling query results) #### Response Example ```json { "example": "No response body for this method" } ``` ## startRef ### Description This method is called by the query process to determine if a reference should be processed. ### Method `startRef(ref: emyRef, row: emyUInt4 = 0, col: emyUInt4 = 0)` ### Parameters #### Path Parameters - None #### Query Parameters - None #### Request Body - None ### Request Example ```json { "example": "No request body for this method" } ``` ### Response #### Success Response (200) - **Boolean** - Returns true if the reference should be processed, false otherwise. #### Response Example ```json { "example": "true" } ``` ``` -------------------------------- ### Get LPP headers by technology and output array using pyAether This version of the 'get' method retrieves LPP headers based on a technology object and populates a provided output array. It returns the count of LPP headers found. The example shows creating an EmyLPPHeader, an empty array, and then calling the get method with the technology and the array. ```python import pyAether lpp_header = pyAether.EmyLPPHeader.create(tech, 220, 220) lpp_arr = pyAether.emyArray_p_EmyLPPHeader() res = lpp_header.get(tech, lpp_arr) ``` -------------------------------- ### netlistAndRun Launches a simulation run synchronously and waits for it to complete. Generates log files for debugging. ```APIDOC ## netlistAndRun ### Description Launches a simulation run, according to the corresponding setting information (represented by the MdePlatSetting object), and waits until the run finishes. While creating the ".netlist" file, emy2netlist.log is created under the same directory as the ".netlist" file. While creating the ".digital" file, emy2verilog.log is created under the same directory as the ".digital" file. ### Method `netlistAndRun()` ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```python import pyAether as pyScript mde = pyScript.MdePlatSession.open("testLib", "testCell", "platform") result = mde.netlistAndRun() if result: print("Successfully launched a simulation run and it has finished") else: print("Fails to launch a simulation run, reason [%s]" % mde.getLastError()) ``` ### Response #### Success Response (200) - **MdePlatResult** - If the simulation run is launched, return an MdePlatResult object, which represents the run’s simulation result. #### Response Example (An MdePlatResult object or None if failed) ``` -------------------------------- ### Get Start Object of emyScanChain Retrieves the first object in the scan chain. This object can be an emyBitTerm, emyInstTerm, or emyScanChainInst. ```Python start_object = myScanChain.getStartObject() ``` -------------------------------- ### emyDonut Creation Method Method for creating a new emyDonut instance with specified parameters. ```APIDOC ## create ### Description Creates a donut shape based on the specified properties. ### Method `create(block: emyBlock, layerNum: emyLayerNum, purposeNum: emyPurposeNum, center: emyPoint, radius: emyDist, holeRadius: emyDist) -> emyDonut` ### Parameters #### Path Parameters - **block** (emyBlock) - Required - Specifies the block that creates the donut. - **layerNum** (emyLayerNum) - Required - Specifies the layer number for the donut. - **purposeNum** (emyPurposeNum) - Required - Specifies the purpose number for the donut. - **center** (emyPoint) - Required - Specifies the center point for the donut. - **radius** (emyDist) - Required - Specifies the outer radius of the donut. - **holeRadius** (emyDist) - Required - Specifies the inner radius of the donut. ### Response #### Success Response (200) - **emyDonut** - The newly created donut shape. ### Raises - **emcDonutRadiiInvalid** - If the inner radius is not smaller than the outer radius. ```