788 lines
55 KiB
HTML
788 lines
55 KiB
HTML
|
|
<!doctype html>
|
||
|
|
<html lang="zh-CN">
|
||
|
|
<head>
|
||
|
|
<meta charset="utf-8">
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
|
|
<title>oaVia</title>
|
||
|
|
<style>
|
||
|
|
body {
|
||
|
|
margin: 0;
|
||
|
|
background: #0d0b0b;
|
||
|
|
color: #f5f1ec;
|
||
|
|
font-family: Arial, Helvetica, sans-serif;
|
||
|
|
line-height: 1.5;
|
||
|
|
}
|
||
|
|
|
||
|
|
a {
|
||
|
|
color: #f2d6c2;
|
||
|
|
text-decoration: none;
|
||
|
|
}
|
||
|
|
|
||
|
|
a:hover {
|
||
|
|
text-decoration: underline;
|
||
|
|
color: #fff4ea;
|
||
|
|
}
|
||
|
|
|
||
|
|
.topbar {
|
||
|
|
border-bottom: 1px solid #6f3d2d;
|
||
|
|
background: #120f0f;
|
||
|
|
}
|
||
|
|
|
||
|
|
.topbar-inner {
|
||
|
|
max-width: 1440px;
|
||
|
|
margin: 0 auto;
|
||
|
|
padding: 14px 20px 10px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.brand {
|
||
|
|
font-size: 28px;
|
||
|
|
font-weight: 700;
|
||
|
|
color: #fff8f2;
|
||
|
|
margin: 0 0 10px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.tabs {
|
||
|
|
display: flex;
|
||
|
|
flex-wrap: wrap;
|
||
|
|
gap: 6px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.tab {
|
||
|
|
display: inline-block;
|
||
|
|
padding: 6px 12px;
|
||
|
|
border: 1px solid #6f3d2d;
|
||
|
|
background: #151111;
|
||
|
|
color: #f2d6c2;
|
||
|
|
font-size: 13px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.tab.active {
|
||
|
|
background: #4b2317;
|
||
|
|
font-weight: 700;
|
||
|
|
color: #fff8f2;
|
||
|
|
}
|
||
|
|
|
||
|
|
.layout {
|
||
|
|
max-width: 1440px;
|
||
|
|
margin: 0 auto;
|
||
|
|
display: grid;
|
||
|
|
grid-template-columns: 280px minmax(0, 1fr);
|
||
|
|
gap: 28px;
|
||
|
|
padding: 24px 24px 40px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.sidebar {
|
||
|
|
font-size: 13px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.sidebar-panel {
|
||
|
|
border: 1px solid #6f3d2d;
|
||
|
|
margin-bottom: 16px;
|
||
|
|
background: #151111;
|
||
|
|
}
|
||
|
|
|
||
|
|
.sidebar-title {
|
||
|
|
background: #2a1713;
|
||
|
|
border-bottom: 1px solid #6f3d2d;
|
||
|
|
padding: 8px 10px;
|
||
|
|
font-weight: 700;
|
||
|
|
color: #fff1e8;
|
||
|
|
}
|
||
|
|
|
||
|
|
.sidebar-body {
|
||
|
|
padding: 8px 10px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.sidebar-search {
|
||
|
|
width: 100%;
|
||
|
|
box-sizing: border-box;
|
||
|
|
padding: 6px 8px;
|
||
|
|
border: 1px solid #6f3d2d;
|
||
|
|
background: #0d0b0b;
|
||
|
|
color: #f5f1ec;
|
||
|
|
font-size: 13px;
|
||
|
|
margin-bottom: 8px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.sidebar-search::placeholder {
|
||
|
|
color: #c8a995;
|
||
|
|
}
|
||
|
|
|
||
|
|
.sidebar-body ul {
|
||
|
|
list-style: none;
|
||
|
|
padding: 0;
|
||
|
|
margin: 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.sidebar-body li.hidden {
|
||
|
|
display: none;
|
||
|
|
}
|
||
|
|
|
||
|
|
.active-link {
|
||
|
|
font-weight: 700;
|
||
|
|
color: #fff8f2;
|
||
|
|
}
|
||
|
|
|
||
|
|
.sidebar-body li + li {
|
||
|
|
margin-top: 6px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.content {
|
||
|
|
min-width: 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.content-grid {
|
||
|
|
display: grid;
|
||
|
|
grid-template-columns: minmax(0, 1fr);
|
||
|
|
gap: 0;
|
||
|
|
align-items: start;
|
||
|
|
}
|
||
|
|
|
||
|
|
.doc {
|
||
|
|
border: 1px solid #6f3d2d;
|
||
|
|
background: #120f0f;
|
||
|
|
padding: 24px 28px 32px;
|
||
|
|
min-width: 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.toc-panel {
|
||
|
|
border: 1px solid #6f3d2d;
|
||
|
|
background: #151111;
|
||
|
|
padding: 0;
|
||
|
|
position: sticky;
|
||
|
|
top: 16px;
|
||
|
|
margin-bottom: 16px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.toc-toggle {
|
||
|
|
width: 100%;
|
||
|
|
box-sizing: border-box;
|
||
|
|
display: flex;
|
||
|
|
align-items: center;
|
||
|
|
justify-content: space-between;
|
||
|
|
gap: 12px;
|
||
|
|
padding: 12px 14px;
|
||
|
|
border: 0;
|
||
|
|
background: #2a1713;
|
||
|
|
color: #fff1e8;
|
||
|
|
cursor: pointer;
|
||
|
|
font-size: 14px;
|
||
|
|
font-weight: 700;
|
||
|
|
}
|
||
|
|
|
||
|
|
.toc-toggle:hover {
|
||
|
|
background: #3a1d16;
|
||
|
|
}
|
||
|
|
|
||
|
|
.toc-toggle-indicator {
|
||
|
|
font-size: 12px;
|
||
|
|
color: #d6ac96;
|
||
|
|
}
|
||
|
|
|
||
|
|
.toc-body {
|
||
|
|
display: none;
|
||
|
|
padding: 14px 16px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.toc-panel.open .toc-body {
|
||
|
|
display: block;
|
||
|
|
}
|
||
|
|
|
||
|
|
.toc-panel h2 {
|
||
|
|
margin: 0 0 10px;
|
||
|
|
padding: 0;
|
||
|
|
border: 0;
|
||
|
|
font-size: 18px;
|
||
|
|
color: #fff1e8;
|
||
|
|
}
|
||
|
|
|
||
|
|
.toc-panel ul {
|
||
|
|
list-style: none;
|
||
|
|
padding: 0;
|
||
|
|
margin: 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.toc-panel li + li {
|
||
|
|
margin-top: 8px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.toc-panel a {
|
||
|
|
font-size: 13px;
|
||
|
|
line-height: 1.35;
|
||
|
|
color: #f2d6c2;
|
||
|
|
}
|
||
|
|
|
||
|
|
.crumbs {
|
||
|
|
color: #c8a995;
|
||
|
|
font-size: 13px;
|
||
|
|
margin-bottom: 14px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.meta {
|
||
|
|
border: 1px solid #6f3d2d;
|
||
|
|
background: #151111;
|
||
|
|
padding: 10px 12px;
|
||
|
|
margin: 16px 0 20px;
|
||
|
|
font-size: 13px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.meta div + div {
|
||
|
|
margin-top: 4px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.doc h1 {
|
||
|
|
margin: 0 0 8px;
|
||
|
|
font-size: 34px;
|
||
|
|
color: #fff8f2;
|
||
|
|
}
|
||
|
|
|
||
|
|
.doc h2 {
|
||
|
|
margin: 28px 0 12px;
|
||
|
|
padding-bottom: 4px;
|
||
|
|
border-bottom: 1px solid #6f3d2d;
|
||
|
|
font-size: 22px;
|
||
|
|
color: #fff1e8;
|
||
|
|
}
|
||
|
|
|
||
|
|
.doc h3 {
|
||
|
|
margin: 22px 0 10px;
|
||
|
|
font-size: 18px;
|
||
|
|
color: #f7e1d5;
|
||
|
|
}
|
||
|
|
|
||
|
|
.doc p, .doc li {
|
||
|
|
font-size: 14px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.doc pre {
|
||
|
|
overflow-x: auto;
|
||
|
|
background: #0d0b0b;
|
||
|
|
border: 1px solid #6f3d2d;
|
||
|
|
padding: 12px 14px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.doc code {
|
||
|
|
font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
|
||
|
|
font-size: 12px;
|
||
|
|
overflow-wrap: anywhere;
|
||
|
|
word-break: break-word;
|
||
|
|
color: #f7e1d5;
|
||
|
|
}
|
||
|
|
|
||
|
|
.doc table {
|
||
|
|
width: 100%;
|
||
|
|
border-collapse: collapse;
|
||
|
|
margin: 12px 0 18px;
|
||
|
|
font-size: 13px;
|
||
|
|
table-layout: fixed;
|
||
|
|
}
|
||
|
|
|
||
|
|
.doc th, .doc td {
|
||
|
|
border: 1px solid #6f3d2d;
|
||
|
|
padding: 7px 9px;
|
||
|
|
vertical-align: top;
|
||
|
|
text-align: left;
|
||
|
|
overflow-wrap: anywhere;
|
||
|
|
word-break: break-word;
|
||
|
|
}
|
||
|
|
|
||
|
|
.doc th {
|
||
|
|
background: #2a1713;
|
||
|
|
color: #fff1e8;
|
||
|
|
}
|
||
|
|
|
||
|
|
.doc blockquote {
|
||
|
|
margin: 14px 0;
|
||
|
|
padding: 8px 12px;
|
||
|
|
border-left: 4px solid #8a4a36;
|
||
|
|
background: #151111;
|
||
|
|
color: #f2d6c2;
|
||
|
|
}
|
||
|
|
|
||
|
|
.search-panel {
|
||
|
|
border: 1px solid #6f3d2d;
|
||
|
|
background: #151111;
|
||
|
|
padding: 16px 18px;
|
||
|
|
margin-bottom: 20px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.search-panel input {
|
||
|
|
width: 100%;
|
||
|
|
box-sizing: border-box;
|
||
|
|
padding: 8px 10px;
|
||
|
|
border: 1px solid #6f3d2d;
|
||
|
|
background: #0d0b0b;
|
||
|
|
color: #f5f1ec;
|
||
|
|
font-size: 14px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.search-panel input::placeholder {
|
||
|
|
color: #c8a995;
|
||
|
|
}
|
||
|
|
|
||
|
|
.search-results {
|
||
|
|
list-style: none;
|
||
|
|
padding: 0;
|
||
|
|
margin: 16px 0 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.search-results li {
|
||
|
|
border-top: 1px solid #4b2317;
|
||
|
|
padding: 10px 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
.search-results li.hidden {
|
||
|
|
display: none;
|
||
|
|
}
|
||
|
|
|
||
|
|
.search-results a {
|
||
|
|
font-weight: 700;
|
||
|
|
}
|
||
|
|
|
||
|
|
.search-results .module-tag {
|
||
|
|
display: inline-block;
|
||
|
|
margin-left: 8px;
|
||
|
|
padding: 2px 6px;
|
||
|
|
border: 1px solid #8a4a36;
|
||
|
|
background: #2a1713;
|
||
|
|
color: #f2d6c2;
|
||
|
|
font-size: 12px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.search-results .result-path {
|
||
|
|
margin-top: 4px;
|
||
|
|
color: #c8a995;
|
||
|
|
font-size: 12px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.footer {
|
||
|
|
max-width: 1440px;
|
||
|
|
margin: 0 auto;
|
||
|
|
padding: 0 20px 28px;
|
||
|
|
color: #b89481;
|
||
|
|
font-size: 12px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.doc > * {
|
||
|
|
min-width: 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
@media (max-width: 960px) {
|
||
|
|
.layout {
|
||
|
|
grid-template-columns: 1fr;
|
||
|
|
}
|
||
|
|
|
||
|
|
.content-grid {
|
||
|
|
grid-template-columns: 1fr;
|
||
|
|
}
|
||
|
|
|
||
|
|
.toc-panel {
|
||
|
|
position: static;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
</style>
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
<div class="topbar">
|
||
|
|
<div class="topbar-inner">
|
||
|
|
<div class="brand"><a href="../index.html">AIVI / oapy API 中文文档</a></div>
|
||
|
|
<div class="tabs"><a class="tab" href="../base/index.html">base</a><a class="tab" href="../common/index.html">common</a><a class="tab" href="../cms/index.html">cms</a><a class="tab" href="../dm/index.html">dm</a><a class="tab active" href="../design/index.html">design</a><a class="tab" href="../tech/index.html">tech</a><a class="tab" href="../wafer/index.html">wafer</a></div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
<div class="layout">
|
||
|
|
<aside class="sidebar"><div class="sidebar-panel"><div class="sidebar-title">模块</div><div class="sidebar-body"><ul><li><a href="../classes.html">全部类</a></li><li><a href="../base/index.html">base</a></li><li><a href="../common/index.html">common</a></li><li><a href="../cms/index.html">cms</a></li><li><a href="../dm/index.html">dm</a></li><li><a class="active-link" href="../design/index.html">design</a></li><li><a href="../tech/index.html">tech</a></li><li><a href="../wafer/index.html">wafer</a></li></ul></div></div><div class="sidebar-panel"><div class="sidebar-title">design 类</div><div class="sidebar-body"><input class="sidebar-search" type="search" placeholder="筛选类" data-class-filter><ul><li data-class-item data-class-name="iregionqueryplugmgr"><a href="IRegionQueryPlugMgr.html">IRegionQueryPlugMgr</a></li><li data-class-item data-class-name="oaanalysisoppoint"><a href="oaAnalysisOpPoint.html">oaAnalysisOpPoint</a></li><li data-class-item data-class-name="oaanalysispoint"><a href="oaAnalysisPoint.html">oaAnalysisPoint</a></li><li data-class-item data-class-name="oaanalysispointarray"><a href="oaAnalysisPointArray.html">oaAnalysisPointArray</a></li><li data-class-item data-class-name="oaarc"><a href="oaArc.html">oaArc</a></li><li data-class-item data-class-name="oaareablockage"><a href="oaAreaBlockage.html">oaAreaBlockage</a></li><li data-class-item data-class-name="oaareaboundary"><a href="oaAreaBoundary.html">oaAreaBoundary</a></li><li data-class-item data-class-name="oaareahalo"><a href="oaAreaHalo.html">oaAreaHalo</a></li><li data-class-item data-class-name="oaarrayinst"><a href="oaArrayInst.html">oaArrayInst</a></li><li data-class-item data-class-name="oaassignassignment"><a href="oaAssignAssignment.html">oaAssignAssignment</a></li><li data-class-item data-class-name="oaassignvalue"><a href="oaAssignValue.html">oaAssignValue</a></li><li data-class-item data-class-name="oaassignednetspec"><a href="oaAssignedNetSpec.html">oaAssignedNetSpec</a></li><li data-class-item data-class-name="oaassignment"><a href="oaAssignment.html">oaAssignment</a></li><li data-class-item data-class-name="oaassignmentattrtype"><a href="oaAssignmentAttrType.html">oaAssignmentAttrType</a></li><li data-class-item data-class-name="oaassignmentdef"><a href="oaAssignmentDef.html">oaAssignmentDef</a></li><li data-class-item data-class-name="oaattrdisplay"><a href="oaAttrDisplay.html">oaAttrDisplay</a></li><li data-class-item data-class-name="oaattrtype"><a href="oaAttrType.html">oaAttrType</a></li><li data-class-item data-class-name="oabasememnetcollection"><a href="oaBaseMemNetCollection.html">oaBaseMemNetCollection</a></li><li data-class-item data-class-name="oabasememnetiter"><a href="oaBaseMemNetIter.html">oaBaseMemNetIter</a></li><li data-class-item data-class-name="oabitinst"><a href="oaBitInst.html">oaBitInst</a></li><li data-class-item data-class-name="oabitnet"><a href="oaBitNet.html">oaBitNet</a></li><li data-class-item data-class-name="oabitorder"><a href="oaBitOrder.html">oaBitOrder</a></li><li data-class-item data-class-name="oabitterm"><a href="oaBitTerm.html">oaBitTerm</a></li><li data-class-item data-class-name="oablock"><a href="oaBlock.html">oaBlock</a></li><li data-class-item data-class-name="oablockdomainvisibility"><a href="oaBlockDomainVisibility.html">oaBlockDomainVisibility</a></li><li data-class-item data-class-name="oablockobject"><a href="oaBlockObject.html">oaBlockObject</a></li><li data-class-item data-class-name="oablockage"><a href="oaBlockage.html">oaBlockage</a></li><li data-class-item data-class-name="oablockagequery"><a href="oaBlockageQuery.html">oaBlockageQuery</a></li><li data-class-item data-class-name="oablockagetype"><a href="oaBlockageType.html">oaBlockageType</a></li><li data-class-item data-class-name="oaboundary"><a href="oaBoundary.html">oaBoundary</a></li><li data-class-item data-class-name="oaboundaryquery"><a href="oaBoundaryQuery.html">oaBoundaryQuery</a></li><li data-class-item data-class-name="oabundlenet"><a href="oaBundleNet.html">oaBundleNet</a></li><li data-class-item da
|
||
|
|
<main class="content">
|
||
|
|
<div class="content-grid">
|
||
|
|
<div class="doc">
|
||
|
|
<div class="crumbs"><a href="../index.html">首页</a> / <a href="index.html">design</a> / oaVia</div>
|
||
|
|
<h1 id="oavia">oaVia</h1>
|
||
|
|
<p><strong>模块</strong>: <code>oapy._oa._design</code>
|
||
|
|
<strong>导入</strong>: <code>from oapy._oa import _design</code></p>
|
||
|
|
<h2 id="_1">概览</h2>
|
||
|
|
<p><code>oaVia</code> 在 <code>oapy</code> 中可用,可通过 <code>_design</code> 模块访问。</p>
|
||
|
|
<p>本页汇总 <code>oaVia</code> 当前在 <code>oapy</code> 中可用的 Python 接口。</p>
|
||
|
|
<h2 id="_2">详细说明</h2>
|
||
|
|
<p>The oaVia class is an abstract base class for vias。 A via represents a physical connection between two adjacent route pathSegs that are on different layers。 A via references a via definition ( oaViaDef ) from the technology database that corresponds to the design where the via exists。 A via may be either a standard via or a custom via。 A standard via has a pre-defined set of via parameters that can be tailored to create a variety of vias to cover a variety of connections。 The standard via references a standard via definition。 A custom via is very much like an instance where, through its custom via definition, another design is referenced。 Custom vias often include a set of parameter values that can be used to tailor the master for each specific via。 A via can represent complex pin figures although vias are normally associated with routes。 Vias always have an oaViaHeader which contains the attributes that are constant for all vias of a given via definition。 The oaVia class can be observed by deriving from oaObserver<oaVia> 。 A discussion of the creation of oaVia objects can be found in the Representing Vias in OpenAccess section of the Programmers Guide。</p>
|
||
|
|
<h2 id="_3">方法总览</h2>
|
||
|
|
<table>
|
||
|
|
<thead>
|
||
|
|
<tr>
|
||
|
|
<th>状态</th>
|
||
|
|
<th>Python 调用</th>
|
||
|
|
</tr>
|
||
|
|
</thead>
|
||
|
|
<tbody>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getHeader()</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getViaDef()</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getViaDefName(name)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getPurposeNum()</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getRoute()</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getRouteStatus()</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getRouteTopology()</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getDirection()</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getShieldedNet1()</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getShieldedNet2()</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.isUnShielded()</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.hasRoute()</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.setPurposeNum(purposeNum)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.setRouteStatus(status)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.setRouteTopology(topology)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.setDirection(dir)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.setShieldedNet1(net)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.setShieldedNet2(net)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.setUnShielded(unShielded)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getConnRoutes()</code></td>
|
||
|
|
</tr>
|
||
|
|
</tbody>
|
||
|
|
</table>
|
||
|
|
<h2 id="_4">方法说明</h2>
|
||
|
|
<h3 id="objgetheader"><code>obj.getHeader()</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getHeader()</code></p>
|
||
|
|
<p>This function returns the oaViaHeader associated with this via。 The oaViaHeader is a collection of the attributes that are common to all vias of a particular via definition。 For vias of via definitions that have parameters, this function returns the via subheader。 从 oaRef 重新实现。 在 oaStdVia 和 oaCustomVia 中重新实现。</p>
|
||
|
|
<p><strong>返回</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li>The pointer to the via header。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.getHeader()
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objgetviadef"><code>obj.getViaDef()</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getViaDef()</code></p>
|
||
|
|
<p>This function returns the oaViaDef object associated with this via。 If the oaViaDef is not bound, a NULL is returned。</p>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.getViaDef()
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objgetviadefnamename"><code>obj.getViaDefName(name)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getViaDefName(name)</code></p>
|
||
|
|
<p>This function fills out name with the name of the via definition associated with this via。</p>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.getViaDefName(name)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objgetpurposenum"><code>obj.getPurposeNum()</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getPurposeNum()</code></p>
|
||
|
|
<p>This function returns the purpose number associated with this via。</p>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.getPurposeNum()
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objgetroute"><code>obj.getRoute()</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getRoute()</code></p>
|
||
|
|
<p>This function returns the route to which this via may belong。 If this via does not belong to a route, a NULL is returned。</p>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.getRoute()
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objgetroutestatus"><code>obj.getRouteStatus()</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getRouteStatus()</code></p>
|
||
|
|
<p>This function returns the current routing status of this via。</p>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.getRouteStatus()
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objgetroutetopology"><code>obj.getRouteTopology()</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getRouteTopology()</code></p>
|
||
|
|
<p>This function returns the current routing topology of this via。</p>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.getRouteTopology()
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objgetdirection"><code>obj.getDirection()</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getDirection()</code></p>
|
||
|
|
<p>This function returns the direction of this via。</p>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.getDirection()
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objgetshieldednet1"><code>obj.getShieldedNet1()</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getShieldedNet1()</code></p>
|
||
|
|
<p>This function returns the first net that this via is shielding。 A via may shield up to two nets。</p>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.getShieldedNet1()
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objgetshieldednet2"><code>obj.getShieldedNet2()</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getShieldedNet2()</code></p>
|
||
|
|
<p>This function returns the second net that this via is shielding。 A via may shield up to two nets。</p>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.getShieldedNet2()
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objisunshielded"><code>obj.isUnShielded()</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.isUnShielded()</code></p>
|
||
|
|
<p>This function returns true if this via is not shielded。</p>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.isUnShielded()
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objhasroute"><code>obj.hasRoute()</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.hasRoute()</code></p>
|
||
|
|
<p>This function returns true if this via is part of a route, false otherwise。</p>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.hasRoute()
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objsetpurposenumpurposenum"><code>obj.setPurposeNum(purposeNum)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.setPurposeNum(purposeNum)</code></p>
|
||
|
|
<p>This function sets the purpose of this via to the specified 'purposeNum' value。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>purposeNum</code>: The new technology purpose number to associate with this via。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.setPurposeNum(purposeNum)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objsetroutestatusstatus"><code>obj.setRouteStatus(status)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.setRouteStatus(status)</code></p>
|
||
|
|
<p>This function sets the routeStatus of this via to the specified 'status'。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>status</code>: The routing status to be set for this via。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.setRouteStatus(status)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objsetroutetopologytopology"><code>obj.setRouteTopology(topology)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.setRouteTopology(topology)</code></p>
|
||
|
|
<p>This function sets the routeTopology of this via to the specified 'topology'。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>topology</code>: The routing topology to be set for this via。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.setRouteTopology(topology)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objsetdirectiondir"><code>obj.setDirection(dir)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.setDirection(dir)</code></p>
|
||
|
|
<p>This function sets the direction of this via to the specified 'dir'。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>dir</code>: The direction to be set for this via。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.setDirection(dir)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objsetshieldednet1net"><code>obj.setShieldedNet1(net)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.setShieldedNet1(net)</code></p>
|
||
|
|
<p>This function sets the first shielded net for this via to the specified bit net。 A via may shield up to two nets。 A NULL pointer resets the attribute。 Exceptions are thrown if the bit net is not in the same database as this via。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>net</code>: Bit net that is shielded by this via。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>异常</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>oacNetFigNotInSameBlock</code>。</li>
|
||
|
|
<li><code>oacObjectAlreadyShieldsNet</code>。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.setShieldedNet1(net)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objsetshieldednet2net"><code>obj.setShieldedNet2(net)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.setShieldedNet2(net)</code></p>
|
||
|
|
<p>This function sets the second shielded net for this via to the specified bit net。 A via may shield up to two nets。 A NULL pointer resets the attribute。 Exceptions are thrown if the bit net is not in the same database as this via。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>net</code>: Bit net that is shielded by this via。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>异常</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>oacNetFigNotInSameBlock</code>。</li>
|
||
|
|
<li><code>oacObjectAlreadyShieldsNet</code>。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.setShieldedNet2(net)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objsetunshieldedunshielded"><code>obj.setUnShielded(unShielded)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.setUnShielded(unShielded)</code></p>
|
||
|
|
<p>This function sets the unShielded attribute of this via to the specified value。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>unShielded</code>: value。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.setUnShielded(unShielded)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objgetconnroutes"><code>obj.getConnRoutes()</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getConnRoutes()</code></p>
|
||
|
|
<p>This function returns a collection of routes that are connected to this via。 Each route in the collection has this via as either its startConn, endConn, or both。</p>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _design
|
||
|
|
|
||
|
|
# assume obj is a oaVia
|
||
|
|
obj.getConnRoutes()
|
||
|
|
</code></pre>
|
||
|
|
</div>
|
||
|
|
<aside class="toc-panel"><button class="toc-toggle" type="button" data-toc-toggle aria-expanded="false"><span>方法</span><span class="toc-toggle-indicator">展开</span></button><div class="toc-body"><h2>方法</h2><ul><li><a href="#obj-getheader"><code>obj.getHeader()</code></a></li><li><a href="#obj-getviadef"><code>obj.getViaDef()</code></a></li><li><a href="#obj-getviadefname-name"><code>obj.getViaDefName(name)</code></a></li><li><a href="#obj-getpurposenum"><code>obj.getPurposeNum()</code></a></li><li><a href="#obj-getroute"><code>obj.getRoute()</code></a></li><li><a href="#obj-getroutestatus"><code>obj.getRouteStatus()</code></a></li><li><a href="#obj-getroutetopology"><code>obj.getRouteTopology()</code></a></li><li><a href="#obj-getdirection"><code>obj.getDirection()</code></a></li><li><a href="#obj-getshieldednet1"><code>obj.getShieldedNet1()</code></a></li><li><a href="#obj-getshieldednet2"><code>obj.getShieldedNet2()</code></a></li><li><a href="#obj-isunshielded"><code>obj.isUnShielded()</code></a></li><li><a href="#obj-hasroute"><code>obj.hasRoute()</code></a></li><li><a href="#obj-setpurposenum-purposenum"><code>obj.setPurposeNum(purposeNum)</code></a></li><li><a href="#obj-setroutestatus-status"><code>obj.setRouteStatus(status)</code></a></li><li><a href="#obj-setroutetopology-topology"><code>obj.setRouteTopology(topology)</code></a></li><li><a href="#obj-setdirection-dir"><code>obj.setDirection(dir)</code></a></li><li><a href="#obj-setshieldednet1-net"><code>obj.setShieldedNet1(net)</code></a></li><li><a href="#obj-setshieldednet2-net"><code>obj.setShieldedNet2(net)</code></a></li><li><a href="#obj-setunshielded-unshielded"><code>obj.setUnShielded(unShielded)</code></a></li><li><a href="#obj-getconnroutes"><code>obj.getConnRoutes()</code></a></li></ul></div></aside>
|
||
|
|
</div>
|
||
|
|
</main>
|
||
|
|
</div>
|
||
|
|
<div class="footer">oapy 是 AIVI 项目的一部分。此站点提供当前 oapy Python API 的中文文档。</div>
|
||
|
|
<script>
|
||
|
|
document.addEventListener("DOMContentLoaded", () => {
|
||
|
|
const input = document.querySelector("[data-class-filter]");
|
||
|
|
if (input) {
|
||
|
|
input.addEventListener("input", () => {
|
||
|
|
const term = input.value.trim().toLowerCase();
|
||
|
|
document.querySelectorAll("[data-class-item]").forEach((item) => {
|
||
|
|
const name = item.getAttribute("data-class-name") || "";
|
||
|
|
item.classList.toggle("hidden", term && !name.includes(term));
|
||
|
|
});
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
const globalInput = document.querySelector("[data-global-search]");
|
||
|
|
if (globalInput) {
|
||
|
|
globalInput.addEventListener("input", () => {
|
||
|
|
const term = globalInput.value.trim().toLowerCase();
|
||
|
|
document.querySelectorAll("[data-search-item]").forEach((item) => {
|
||
|
|
const name = item.getAttribute("data-search-name") || "";
|
||
|
|
const module = item.getAttribute("data-search-module") || "";
|
||
|
|
const visible = !term || name.includes(term) || module.includes(term);
|
||
|
|
item.classList.toggle("hidden", !visible);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
document.querySelectorAll("[data-toc-toggle]").forEach((button) => {
|
||
|
|
button.addEventListener("click", () => {
|
||
|
|
const panel = button.closest(".toc-panel");
|
||
|
|
if (!panel) return;
|
||
|
|
const isOpen = panel.classList.toggle("open");
|
||
|
|
button.setAttribute("aria-expanded", isOpen ? "true" : "false");
|
||
|
|
const indicator = button.querySelector(".toc-toggle-indicator");
|
||
|
|
if (indicator) {
|
||
|
|
indicator.textContent = isOpen ? "Hide" : "Show";
|
||
|
|
}
|
||
|
|
});
|
||
|
|
});
|
||
|
|
});
|
||
|
|
</script>
|
||
|
|
</body>
|
||
|
|
</html>
|