793 lines
60 KiB
HTML
793 lines
60 KiB
HTML
<!doctype html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>oaRoute</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 data-class-name="oabundleterm"><a href="oaBundleTerm.html">oaBundleTerm</a></li><li data-class-item data-class-name="oabusnet"><a href="oaBusNet.html">oaBusNet</a></li><li data-class-item data-class-name="oabusnetbit"><a href="oaBusNetBit.html">oaBusNetBit</a></li><li data-class-item data-class-name="oabusnetdef"><a href="oaBusNetDef.html">oaBusNetDef</a></li><li data-class-item data-class-name="oabusterm"><a href="oaBusTerm.html">oaBusTerm</a></li><li data-class-item data-class-name="oabustermbit"><a href="oaBusTermBit.html">oaBusTermBit</a></li><li data-class-item data-class-name="oabustermdef"><a href="oaBusTermDef.html">oaBusTermDef</a></li><li data-class-item data-class-name="oacmap"><a href="oaCMap.html">oaCMap</a></li><li data-class-item data-class-name="oacelltype"><a href="oaCellType.html">oaCellType</a></li><li data-class-item data-class-name="oacluster"><a href="oaCluster.html">oaCluster</a></li><li data-class-item data-class-name="oaclusterboundary"><a href="oaClusterBoundary.html">oaClusterBoundary</a></li><li data-class-item data-class-name="oaclustertype"><a href="oaClusterType.html">oaClusterType</a></li><li data-class-item data-class-name="oaconnfig"><a href="oaConnFig.html">oaConnFig</a></li><li data-class-item data-class-name="oaconnstatus"><a href="oaConnStatus.html">oaConnStatus</a></li><li data-class-item data-class-name="oaconnectdef"><a href="oaConnectDef.html">oaConnectDef</a></li><li data-class-item data-class-name="oacoreboxspec"><a href="oaCoreBoxSpec.html">oaCoreBoxSpec</a></li><li data-class-item data-class-name="oacouplingcap"><a href="oaCouplingCap.html">oaCouplingCap</a></li><li data-class-item data-class-name="oacustomvia"><a href="oaCustomVia.html">oaCustomVia</a></li><li data-class-item data-class-name="oacustomviaheader"><a href="oaCustomViaHeader.html">oaCustomViaHeader</a></li><li data-class-item data-class-name="oadesign"><a href="oaDesign.html">oaDesign</a></li><li data-class-item data-class-name="oadesignarray"><a href="oaDesignArray.html">oaDesignArray</a></li><li data-class-item data-class-name="oadesignattrtype"><a href="oaDesignAttrType.html">oaDesignAttrType</a></li><li data-class-item data-class-name="oadesigndatatype"><a href="oaDesignDataType.html">oaDesignDataType</a></li><li data-class-item data-class-name="oadesignerror"><a href="oaDesignError.html">oaDesignError</a></li><li data-class-item data-class-name="oadesignexception"><a href="oaDesignException.html">oaDesignException</a></li><li data-class-item data-class-name="oadesignobject"><a href="oaDesignObject.html">oaDesignObject</a></li><li data-class-item data-class-name="oadesignundoobserver"><a href="oaDesignUndoObserver.html">oaDesignUndoObserver</a></li><li data-class-item data-class-name="oadesignundoobserverbase"><a href="oaDesignUndoObserverBase.html">oaDesignUndoObserverBase</a></li><li data-class-item data-class-name="oadesignviavariantheader"><a href="oaDesignViaVariantHeader.html">oaDesignViaVariantHeader</a></li><li data-class-item data-class-name="oadevice"><a href="oaDevice.html">oaDevice</a></li><li data-class-item data-class-name="oadiode"><a href="oaDiode.html">oaDiode</a></li><li data-class-item data-class-name="oadonut"><a href="oaDonut.html">oaDonut</a></li><li data-class-item data-class-name="oadot"><a href="oaDot.html">oaDot</a></li><li data-class-item data-class-name="oaellipse"><a href="oaEllipse.html">oaEllipse</a></li><li data-class-item data-class-name="oaelmore"><a href="oaElmore.html">oaElmore</a></li><li data-class-item data-class-name="oaendstyle"><a href="oaEndStyle.html">oaEndStyle</a></li><li data-class-item data-class-name="oaendpointtype"><a href="oaEndpointType.html">oaEndpointType</a></li><li data-class-item data-class-name="oaevaltext"><a href="oaEvalText.html">oaEvalText</a></li><li data-class-item data-class-name="oaevaltextlink"><a href="oaEvalTextLink.html">oaEvalTextLink</a></li><li data-class-item data-class-name="oafig"><a href="oaFig.html">oaFig</a></li><li data-class-item data-class-name="oafiggroup"><a href="oaFigGroup.html">oaFigGroup</a></li><li data-class-item data-class-name="oafiggroupmem"><a href="oaFigGroupMem.html">oaFigGroupMem</a></li><li data-class-item data-class-name="oafiggroupquery"><a href="oaFigGroupQuery.html">oaFigGroupQuery</a></li><li data-class-item data-class-name="oafiggroupstatus"><a href="oaFigGroupStatus.html">oaFigGroupStatus</a></li><li data-class-item data-class-name="oafont"><a href="oaFont.html">oaFont</a></li><li data-class-item data-class-name="oagcellpattern"><a href="oaGCellPattern.html">oaGCellPattern</a></li><li data-class-item data-class-name="oagroundednode"><a href="oaGroundedNode.html">oaGroundedNode</a></li><li data-class-item data-class-name="oaguide"><a href="oaGuide.html">oaGuide</a></li><li data-class-item data-class-name="oaguidequery"><a href="oaGuideQuery.html">oaGuideQuery</a></li><li data-class-item data-class-name="oahierpath"><a href="oaHierPath.html">oaHierPath</a></li><li data-class-item data-class-name="oainductor"><a href="oaInductor.html">oaInductor</a></li><li data-class-item data-class-name="oainst"><a href="oaInst.html">oaInst</a></li><li data-class-item data-class-name="oainstattrdisplay"><a href="oaInstAttrDisplay.html">oaInstAttrDisplay</a></li><li data-class-item data-class-name="oainstattrtype"><a href="oaInstAttrType.html">oaInstAttrType</a></li><li data-class-item data-class-name="oainstheader"><a href="oaInstHeader.html">oaInstHeader</a></li><li data-class-item data-class-name="oainstpropdisplay"><a href="oaInstPropDisplay.html">oaInstPropDisplay</a></li><li data-class-item data-class-name="oainstquery"><a href="oaInstQuery.html">oaInstQuery</a></li><li data-class-item data-class-name="oainstterm"><a href="oaInstTerm.html">oaInstTerm</a></li><li data-class-item data-class-name="oainsttermattrtype"><a href="oaInstTermAttrType.html">oaInstTermAttrType</a></li><li data-class-item data-class-name="oalppheader"><a href="oaLPPHeader.html">oaLPPHeader</a></li><li data-class-item data-class-name="oalayerblockage"><a href="oaLayerBlockage.html">oaLayerBlockage</a></li><li data-class-item data-class-name="oalayerhalo"><a href="oaLayerHalo.html">oaLayerHalo</a></li><li data-class-item data-class-name="oalayerheader"><a href="oaLayerHeader.html">oaLayerHeader</a></li><li data-class-item data-class-name="oalayerheaderarray"><a href="oaLayerHeaderArray.html">oaLayerHeaderArray</a></li><li data-class-item data-class-name="oalayerrangeblockage"><a href="oaLayerRangeBlockage.html">oaLayerRangeBlockage</a></li><li data-class-item data-class-name="oalayerrangeblockagequery"><a href="oaLayerRangeBlockageQuery.html">oaLayerRangeBlockageQuery</a></li><li data-class-item data-class-name="oalayerrangehalo"><a href="oaLayerRangeHalo.html">oaLayerRangeHalo</a></li><li data-class-item data-class-name="oaline"><a href="oaLine.html">oaLine</a></li><li data-class-item data-class-name="oalumpedelmore"><a href="oaLumpedElmore.html">oaLumpedElmore</a></li><li data-class-item data-class-name="oamarker"><a href="oaMarker.html">oaMarker</a></li><li data-class-item data-class-name="oamarkerdeletewhen"><a href="oaMarkerDeleteWhen.html">oaMarkerDeleteWhen</a></li><li data-class-item data-class-name="oamarkerquery"><a href="oaMarkerQuery.html">oaMarkerQuery</a></li><li data-class-item data-class-name="oamarkerseverity"><a href="oaMarkerSeverity.html">oaMarkerSeverity</a></li><li data-class-item data-class-name="oamemnetcollection"><a href="oaMemNetCollection.html">oaMemNetCollection</a></li><li data-class-item data-class-name="oamemnetiter"><a href="oaMemNetIter.html">oaMemNetIter</a></li><li data-class-item data-class-name="oamodassignassignment"><a href="oaModAssignAssignment.html">oaModAssignAssignment</a></li><li data-class-item data-class-name="oamodassignvalue"><a href="oaModAssignValue.html">oaModAssignValue</a></li><li data-class-item data-class-name="oamodassignment"><a href="oaModAssignment.html">oaModAssignment</a></li><li data-class-item data-class-name="oamodbitinst"><a href="oaModBitInst.html">oaModBitInst</a></li><li data-class-item data-class-name="oamodbitnet"><a href="oaModBitNet.html">oaModBitNet</a></li><li data-class-item data-class-name="oamodbitterm"><a href="oaModBitTerm.html">oaModBitTerm</a></li><li data-class-item data-class-name="oamodbundlenet"><a href="oaModBundleNet.html">oaModBundleNet</a></li><li data-class-item data-class-name="oamodbundleterm"><a href="oaModBundleTerm.html">oaModBundleTerm</a></li><li data-class-item data-class-name="oamodbusnet"><a href="oaModBusNet.html">oaModBusNet</a></li><li data-class-item data-class-name="oamodbusnetbit"><a href="oaModBusNetBit.html">oaModBusNetBit</a></li><li data-class-item data-class-name="oamodbusnetdef"><a href="oaModBusNetDef.html">oaModBusNetDef</a></li><li data-class-item data-class-name="oamodbusterm"><a href="oaModBusTerm.html">oaModBusTerm</a></li><li data-class-item data-class-name="oamodbustermbit"><a href="oaModBusTermBit.html">oaModBusTermBit</a></li><li data-class-item data-class-name="oamodbustermdef"><a href="oaModBusTermDef.html">oaModBusTermDef</a></li><li data-class-item data-class-name="oamodconnectdef"><a href="oaModConnectDef.html">oaModConnectDef</a></li><li data-class-item data-class-name="oamoddesigninst"><a href="oaModDesignInst.html">oaModDesignInst</a></li><li data-class-item data-class-name="oamodinst"><a href="oaModInst.html">oaModInst</a></li><li data-class-item data-class-name="oamodinstheader"><a href="oaModInstHeader.html">oaModInstHeader</a></li><li data-class-item data-class-name="oamodinstterm"><a href="oaModInstTerm.html">oaModInstTerm</a></li><li data-class-item data-class-name="oamodmemnetcollection"><a href="oaModMemNetCollection.html">oaModMemNetCollection</a></li><li data-class-item data-class-name="oamodmemnetiter"><a href="oaModMemNetIter.html">oaModMemNetIter</a></li><li data-class-item data-class-name="oamodmodulebitinst"><a href="oaModModuleBitInst.html">oaModModuleBitInst</a></li><li data-class-item data-class-name="oamodmoduleinst"><a href="oaModModuleInst.html">oaModModuleInst</a></li><li data-class-item data-class-name="oamodmoduleinstheader"><a href="oaModModuleInstHeader.html">oaModModuleInstHeader</a></li><li data-class-item data-class-name="oamodmodulescalarinst"><a href="oaModModuleScalarInst.html">oaModModuleScalarInst</a></li><li data-class-item data-class-name="oamodmodulevectorinst"><a href="oaModModuleVectorInst.html">oaModModuleVectorInst</a></li><li data-class-item data-class-name="oamodmodulevectorinstbit"><a href="oaModModuleVectorInstBit.html">oaModModuleVectorInstBit</a></li><li data-class-item data-class-name="oamodnet"><a href="oaModNet.html">oaModNet</a></li><li data-class-item data-class-name="oamodnetconnectdef"><a href="oaModNetConnectDef.html">oaModNetConnectDef</a></li><li data-class-item data-class-name="oamodnettermarray"><a href="oaModNetTermArray.html">oaModNetTermArray</a></li><li data-class-item data-class-name="oamodnettermnamearray"><a href="oaModNetTermNameArray.html">oaModNetTermNameArray</a></li><li data-class-item data-class-name="oamodnettermposarray"><a href="oaModNetTermPosArray.html">oaModNetTermPosArray</a></li><li data-class-item data-class-name="oamodobject"><a href="oaModObject.html">oaModObject</a></li><li data-class-item data-class-name="oamodscalarinst"><a href="oaModScalarInst.html">oaModScalarInst</a></li><li data-class-item data-class-name="oamodscalarnet"><a href="oaModScalarNet.html">oaModScalarNet</a></li><li data-class-item data-class-name="oamodscalarterm"><a href="oaModScalarTerm.html">oaModScalarTerm</a></li><li data-class-item data-class-name="oamodterm"><a href="oaModTerm.html">oaModTerm</a></li><li data-class-item data-class-name="oamodtermarray"><a href="oaModTermArray.html">oaModTermArray</a></li><li data-class-item data-class-name="oamodtermconnectdef"><a href="oaModTermConnectDef.html">oaModTermConnectDef</a></li><li data-class-item data-class-name="oamodvectorinst"><a href="oaModVectorInst.html">oaModVectorInst</a></li><li data-class-item data-class-name="oamodvectorinstbit"><a href="oaModVectorInstBit.html">oaModVectorInstBit</a></li><li data-class-item data-class-name="oamodvectorinstdef"><a href="oaModVectorInstDef.html">oaModVectorInstDef</a></li><li data-class-item data-class-name="oamodule"><a href="oaModule.html">oaModule</a></li><li data-class-item data-class-name="oamutualinductor"><a href="oaMutualInductor.html">oaMutualInductor</a></li><li data-class-item data-class-name="oanet"><a href="oaNet.html">oaNet</a></li><li data-class-item data-class-name="oanetattrtype"><a href="oaNetAttrType.html">oaNetAttrType</a></li><li data-class-item data-class-name="oanetconnectdef"><a href="oaNetConnectDef.html">oaNetConnectDef</a></li><li data-class-item data-class-name="oanettermarray"><a href="oaNetTermArray.html">oaNetTermArray</a></li><li data-class-item data-class-name="oanettermnamearray"><a href="oaNetTermNameArray.html">oaNetTermNameArray</a></li><li data-class-item data-class-name="oanettermpair"><a href="oaNetTermPair.html">oaNetTermPair</a></li><li data-class-item data-class-name="oanettermposarray"><a href="oaNetTermPosArray.html">oaNetTermPosArray</a></li><li data-class-item data-class-name="oanode"><a href="oaNode.html">oaNode</a></li><li data-class-item data-class-name="oaoccarc"><a href="oaOccArc.html">oaOccArc</a></li><li data-class-item data-class-name="oaoccarrayinst"><a href="oaOccArrayInst.html">oaOccArrayInst</a></li><li data-class-item data-class-name="oaoccassignassignment"><a href="oaOccAssignAssignment.html">oaOccAssignAssignment</a></li><li data-class-item data-class-name="oaoccassignvalue"><a href="oaOccAssignValue.html">oaOccAssignValue</a></li><li data-class-item data-class-name="oaoccassignment"><a href="oaOccAssignment.html">oaOccAssignment</a></li><li data-class-item data-class-name="oaoccattrdisplay"><a href="oaOccAttrDisplay.html">oaOccAttrDisplay</a></li><li data-class-item data-class-name="oaoccbitinst"><a href="oaOccBitInst.html">oaOccBitInst</a></li><li data-class-item data-class-name="oaoccbitnet"><a href="oaOccBitNet.html">oaOccBitNet</a></li><li data-class-item data-class-name="oaoccbitterm"><a href="oaOccBitTerm.html">oaOccBitTerm</a></li><li data-class-item data-class-name="oaoccbundlenet"><a href="oaOccBundleNet.html">oaOccBundleNet</a></li><li data-class-item data-class-name="oaoccbundleterm"><a href="oaOccBundleTerm.html">oaOccBundleTerm</a></li><li data-class-item data-class-name="oaoccbusnet"><a href="oaOccBusNet.html">oaOccBusNet</a></li><li data-class-item data-class-name="oaoccbusnetbit"><a href="oaOccBusNetBit.html">oaOccBusNetBit</a></li><li data-class-item data-class-name="oaoccbusnetdef"><a href="oaOccBusNetDef.html">oaOccBusNetDef</a></li><li data-class-item data-class-name="oaoccbusterm"><a href="oaOccBusTerm.html">oaOccBusTerm</a></li><li data-class-item data-class-name="oaoccbustermbit"><a href="oaOccBusTermBit.html">oaOccBusTermBit</a></li><li data-class-item data-class-name="oaoccbustermdef"><a href="oaOccBusTermDef.html">oaOccBusTermDef</a></li><li data-class-item data-class-name="oaoccconnectdef"><a href="oaOccConnectDef.html">oaOccConnectDef</a></li><li data-class-item data-class-name="oaoccdesigninst"><a href="oaOccDesignInst.html">oaOccDesignInst</a></li><li data-class-item data-class-name="oaoccdonut"><a href="oaOccDonut.html">oaOccDonut</a></li><li data-class-item data-class-name="oaoccdot"><a href="oaOccDot.html">oaOccDot</a></li><li data-class-item data-class-name="oaoccellipse"><a href="oaOccEllipse.html">oaOccEllipse</a></li><li data-class-item data-class-name="oaoccevaltext"><a href="oaOccEvalText.html">oaOccEvalText</a></li><li data-class-item data-class-name="oaoccinst"><a href="oaOccInst.html">oaOccInst</a></li><li data-class-item data-class-name="oaoccinstattrdisplay"><a href="oaOccInstAttrDisplay.html">oaOccInstAttrDisplay</a></li><li data-class-item data-class-name="oaoccinstheader"><a href="oaOccInstHeader.html">oaOccInstHeader</a></li><li data-class-item data-class-name="oaoccinstpropdisplay"><a href="oaOccInstPropDisplay.html">oaOccInstPropDisplay</a></li><li data-class-item data-class-name="oaoccinstterm"><a href="oaOccInstTerm.html">oaOccInstTerm</a></li><li data-class-item data-class-name="oaoccline"><a href="oaOccLine.html">oaOccLine</a></li><li data-class-item data-class-name="oaoccmemnetcollection"><a href="oaOccMemNetCollection.html">oaOccMemNetCollection</a></li><li data-class-item data-class-name="oaoccmemnetiter"><a href="oaOccMemNetIter.html">oaOccMemNetIter</a></li><li data-class-item data-class-name="oaoccmodulebitinst"><a href="oaOccModuleBitInst.html">oaOccModuleBitInst</a></li><li data-class-item data-class-name="oaoccmoduleinst"><a href="oaOccModuleInst.html">oaOccModuleInst</a></li><li data-class-item data-class-name="oaoccmoduleinstheader"><a href="oaOccModuleInstHeader.html">oaOccModuleInstHeader</a></li><li data-class-item data-class-name="oaoccmodulescalarinst"><a href="oaOccModuleScalarInst.html">oaOccModuleScalarInst</a></li><li data-class-item data-class-name="oaoccmodulevectorinst"><a href="oaOccModuleVectorInst.html">oaOccModuleVectorInst</a></li><li data-class-item data-class-name="oaoccmodulevectorinstbit"><a href="oaOccModuleVectorInstBit.html">oaOccModuleVectorInstBit</a></li><li data-class-item data-class-name="oaoccnet"><a href="oaOccNet.html">oaOccNet</a></li><li data-class-item data-class-name="oaoccnetconnectdef"><a href="oaOccNetConnectDef.html">oaOccNetConnectDef</a></li><li data-class-item data-class-name="oaoccobject"><a href="oaOccObject.html">oaOccObject</a></li><li data-class-item data-class-name="oaoccpath"><a href="oaOccPath.html">oaOccPath</a></li><li data-class-item data-class-name="oaoccpathseg"><a href="oaOccPathSeg.html">oaOccPathSeg</a></li><li data-class-item data-class-name="oaoccpolygon"><a href="oaOccPolygon.html">oaOccPolygon</a></li><li data-class-item data-class-name="oaoccproducer"><a href="oaOccProducer.html">oaOccProducer</a></li><li data-class-item data-class-name="oaoccpropdisplay"><a href="oaOccPropDisplay.html">oaOccPropDisplay</a></li><li data-class-item data-class-name="oaoccrect"><a href="oaOccRect.html">oaOccRect</a></li><li data-class-item data-class-name="oaoccscalarinst"><a href="oaOccScalarInst.html">oaOccScalarInst</a></li><li data-class-item data-class-name="oaoccscalarnet"><a href="oaOccScalarNet.html">oaOccScalarNet</a></li><li data-class-item data-class-name="oaoccscalarterm"><a href="oaOccScalarTerm.html">oaOccScalarTerm</a></li><li data-class-item data-class-name="oaoccshape"><a href="oaOccShape.html">oaOccShape</a></li><li data-class-item data-class-name="oaoccterm"><a href="oaOccTerm.html">oaOccTerm</a></li><li data-class-item data-class-name="oaocctermarray"><a href="oaOccTermArray.html">oaOccTermArray</a></li><li data-class-item data-class-name="oaocctermconnectdef"><a href="oaOccTermConnectDef.html">oaOccTermConnectDef</a></li><li data-class-item data-class-name="oaocctext"><a href="oaOccText.html">oaOccText</a></li><li data-class-item data-class-name="oaocctextdisplay"><a href="oaOccTextDisplay.html">oaOccTextDisplay</a></li><li data-class-item data-class-name="oaocctextoverride"><a href="oaOccTextOverride.html">oaOccTextOverride</a></li><li data-class-item data-class-name="oaocctraverser"><a href="oaOccTraverser.html">oaOccTraverser</a></li><li data-class-item data-class-name="oaoccvectorinst"><a href="oaOccVectorInst.html">oaOccVectorInst</a></li><li data-class-item data-class-name="oaoccvectorinstbit"><a href="oaOccVectorInstBit.html">oaOccVectorInstBit</a></li><li data-class-item data-class-name="oaoccvectorinstdef"><a href="oaOccVectorInstDef.html">oaOccVectorInstDef</a></li><li data-class-item data-class-name="oaoccurrence"><a href="oaOccurrence.html">oaOccurrence</a></li><li data-class-item data-class-name="oaoppointheader"><a href="oaOpPointHeader.html">oaOpPointHeader</a></li><li data-class-item data-class-name="oaprboundary"><a href="oaPRBoundary.html">oaPRBoundary</a></li><li data-class-item data-class-name="oaparasiticnetwork"><a href="oaParasiticNetwork.html">oaParasiticNetwork</a></li><li data-class-item data-class-name="oapath"><a href="oaPath.html">oaPath</a></li><li data-class-item data-class-name="oapathseg"><a href="oaPathSeg.html">oaPathSeg</a></li><li data-class-item data-class-name="oapathstyle"><a href="oaPathStyle.html">oaPathStyle</a></li><li data-class-item data-class-name="oapcelldef"><a href="oaPcellDef.html">oaPcellDef</a></li><li data-class-item data-class-name="oapcellfileobserver"><a href="oaPcellFileObserver.html">oaPcellFileObserver</a></li><li data-class-item data-class-name="oapcelllink"><a href="oaPcellLink.html">oaPcellLink</a></li><li data-class-item data-class-name="oapcellobserver"><a href="oaPcellObserver.html">oaPcellObserver</a></li><li data-class-item data-class-name="oapielmore"><a href="oaPiElmore.html">oaPiElmore</a></li><li data-class-item data-class-name="oapipoleresidue"><a href="oaPiPoleResidue.html">oaPiPoleResidue</a></li><li data-class-item data-class-name="oapin"><a href="oaPin.html">oaPin</a></li><li data-class-item data-class-name="oapinconnectmethod"><a href="oaPinConnectMethod.html">oaPinConnectMethod</a></li><li data-class-item data-class-name="oapinfig"><a href="oaPinFig.html">oaPinFig</a></li><li data-class-item data-class-name="oapintype"><a href="oaPinType.html">oaPinType</a></li><li data-class-item data-class-name="oaplacementblockagequery"><a href="oaPlacementBlockageQuery.html">oaPlacementBlockageQuery</a></li><li data-class-item data-class-name="oaplacementstatus"><a href="oaPlacementStatus.html">oaPlacementStatus</a></li><li data-class-item data-class-name="oapoleresidue"><a href="oaPoleResidue.html">oaPoleResidue</a></li><li data-class-item data-class-name="oapolygon"><a href="oaPolygon.html">oaPolygon</a></li><li data-class-item data-class-name="oapropdisplay"><a href="oaPropDisplay.html">oaPropDisplay</a></li><li data-class-item data-class-name="oarect"><a href="oaRect.html">oaRect</a></li><li data-class-item data-class-name="oarecursionobserver"><a href="oaRecursionObserver.html">oaRecursionObserver</a></li><li data-class-item data-class-name="oareducedmodel"><a href="oaReducedModel.html">oaReducedModel</a></li><li data-class-item data-class-name="oaref"><a href="oaRef.html">oaRef</a></li><li data-class-item data-class-name="oarefheader"><a href="oaRefHeader.html">oaRefHeader</a></li><li data-class-item data-class-name="oaregionquery"><a href="oaRegionQuery.html">oaRegionQuery</a></li><li data-class-item data-class-name="oaresistor"><a href="oaResistor.html">oaResistor</a></li><li data-class-item data-class-name="oaroute"><a class="active-link" href="oaRoute.html">oaRoute</a></li><li data-class-item data-class-name="oaroutemethod"><a href="oaRouteMethod.html">oaRouteMethod</a></li><li data-class-item data-class-name="oarouteobjectarray"><a href="oaRouteObjectArray.html">oaRouteObjectArray</a></li><li data-class-item data-class-name="oaroutepattern"><a href="oaRoutePattern.html">oaRoutePattern</a></li><li data-class-item data-class-name="oaroutestatus"><a href="oaRouteStatus.html">oaRouteStatus</a></li><li data-class-item data-class-name="oaroutetopology"><a href="oaRouteTopology.html">oaRouteTopology</a></li><li data-class-item data-class-name="oarow"><a href="oaRow.html">oaRow</a></li><li data-class-item data-class-name="oarowfliptype"><a href="oaRowFlipType.html">oaRowFlipType</a></li><li data-class-item data-class-name="oarowheader"><a href="oaRowHeader.html">oaRowHeader</a></li><li data-class-item data-class-name="oarowquery"><a href="oaRowQuery.html">oaRowQuery</a></li><li data-class-item data-class-name="oarowspacingtype"><a href="oaRowSpacingType.html">oaRowSpacingType</a></li><li data-class-item data-class-name="oascalarinst"><a href="oaScalarInst.html">oaScalarInst</a></li><li data-class-item data-class-name="oascalarnet"><a href="oaScalarNet.html">oaScalarNet</a></li><li data-class-item data-class-name="oascalarterm"><a href="oaScalarTerm.html">oaScalarTerm</a></li><li data-class-item data-class-name="oascanchain"><a href="oaScanChain.html">oaScanChain</a></li><li data-class-item data-class-name="oascanchaininst"><a href="oaScanChainInst.html">oaScanChainInst</a></li><li data-class-item data-class-name="oascanchainset"><a href="oaScanChainSet.html">oaScanChainSet</a></li><li data-class-item data-class-name="oascanchainsettype"><a href="oaScanChainSetType.html">oaScanChainSetType</a></li><li data-class-item data-class-name="oascriptenginelink"><a href="oaScriptEngineLink.html">oaScriptEngineLink</a></li><li data-class-item data-class-name="oasegstyle"><a href="oaSegStyle.html">oaSegStyle</a></li><li data-class-item data-class-name="oaseriesrl"><a href="oaSeriesRL.html">oaSeriesRL</a></li><li data-class-item data-class-name="oashape"><a href="oaShape.html">oaShape</a></li><li data-class-item data-class-name="oashapequery"><a href="oaShapeQuery.html">oaShapeQuery</a></li><li data-class-item data-class-name="oasigtype"><a href="oaSigType.html">oaSigType</a></li><li data-class-item data-class-name="oasnapboundary"><a href="oaSnapBoundary.html">oaSnapBoundary</a></li><li data-class-item data-class-name="oasource"><a href="oaSource.html">oaSource</a></li><li data-class-item data-class-name="oastddevice"><a href="oaStdDevice.html">oaStdDevice</a></li><li data-class-item data-class-name="oastdvia"><a href="oaStdVia.html">oaStdVia</a></li><li data-class-item data-class-name="oastdviaheader"><a href="oaStdViaHeader.html">oaStdViaHeader</a></li><li data-class-item data-class-name="oasteiner"><a href="oaSteiner.html">oaSteiner</a></li><li data-class-item data-class-name="oasteinerquery"><a href="oaSteinerQuery.html">oaSteinerQuery</a></li><li data-class-item data-class-name="oasubnetwork"><a href="oaSubNetwork.html">oaSubNetwork</a></li><li data-class-item data-class-name="oasymmetry"><a href="oaSymmetry.html">oaSymmetry</a></li><li data-class-item data-class-name="oaterm"><a href="oaTerm.html">oaTerm</a></li><li data-class-item data-class-name="oatermarray"><a href="oaTermArray.html">oaTermArray</a></li><li data-class-item data-class-name="oatermattrtype"><a href="oaTermAttrType.html">oaTermAttrType</a></li><li data-class-item data-class-name="oatermconnectdef"><a href="oaTermConnectDef.html">oaTermConnectDef</a></li><li data-class-item data-class-name="oatermtype"><a href="oaTermType.html">oaTermType</a></li><li data-class-item data-class-name="oatext"><a href="oaText.html">oaText</a></li><li data-class-item data-class-name="oatextalign"><a href="oaTextAlign.html">oaTextAlign</a></li><li data-class-item data-class-name="oatextdisplay"><a href="oaTextDisplay.html">oaTextDisplay</a></li><li data-class-item data-class-name="oatextdisplaycollection"><a href="oaTextDisplayCollection.html">oaTextDisplayCollection</a></li><li data-class-item data-class-name="oatextdisplayformat"><a href="oaTextDisplayFormat.html">oaTextDisplayFormat</a></li><li data-class-item data-class-name="oatextdisplayiter"><a href="oaTextDisplayIter.html">oaTextDisplayIter</a></li><li data-class-item data-class-name="oatextlink"><a href="oaTextLink.html">oaTextLink</a></li><li data-class-item data-class-name="oatextoverride"><a href="oaTextOverride.html">oaTextOverride</a></li><li data-class-item data-class-name="oatrackpattern"><a href="oaTrackPattern.html">oaTrackPattern</a></li><li data-class-item data-class-name="oavectorinst"><a href="oaVectorInst.html">oaVectorInst</a></li><li data-class-item data-class-name="oavectorinstbit"><a href="oaVectorInstBit.html">oaVectorInstBit</a></li><li data-class-item data-class-name="oavectorinstdef"><a href="oaVectorInstDef.html">oaVectorInstDef</a></li><li data-class-item data-class-name="oavia"><a href="oaVia.html">oaVia</a></li><li data-class-item data-class-name="oaviadirection"><a href="oaViaDirection.html">oaViaDirection</a></li><li data-class-item data-class-name="oaviaheader"><a href="oaViaHeader.html">oaViaHeader</a></li><li data-class-item data-class-name="oaviaquery"><a href="oaViaQuery.html">oaViaQuery</a></li></ul></div></div></aside>
|
|
<main class="content">
|
|
<div class="content-grid">
|
|
<div class="doc">
|
|
<div class="crumbs"><a href="../index.html">首页</a> / <a href="index.html">design</a> / oaRoute</div>
|
|
<h1 id="oaroute">oaRoute</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>oaRoute</code> 在 <code>oapy</code> 中可用,可通过 <code>_design</code> 模块访问。</p>
|
|
<p>本页汇总 <code>oaRoute</code> 当前在 <code>oapy</code> 中可用的 Python 接口。</p>
|
|
<h2 id="_2">详细说明</h2>
|
|
<p>The oaRoute class represents a physical point-to-point connection that is part of a wire。 An oaRoute contains a sequence of objects that may describe both the routing segments on given layers and the vias between those layers。 An oaRoute (Route) may contain segments on multiple layers, but a Route may not branch。 Routes are used to represent the symbolic routing used by high capacity routers。 They specify end-point connected routes that also indicate the objects they connect。 Other routing may be geometric, which often is used for power and ground nets and other hand crafted nets。 Geometric routing is defined with oaShapes and oaVias directly connected to their net without the use of an oaRoute。 Routes can either represent global routes or detailed routes。 Global routes are approximate routes that are routed through a sequence of Gcell grid locations。 Detailed routes express the complete route geometry with the exact coordinates of each segment and via。 The objects in a Route may be instances of oaPathSeg , oaVia , and oaGuide 。 These objects are created separately from the Route and then are added to the Route。 Callers can set or retrieve the elements of a Route using an oaRouteObjectArray 。 Routes may specify the two objects that they connect。 These BeginConn and EndConn objects must be one of: An oaTerm , oaInstTerm or oaPin to which the route connects An oaSteiner where the Route ends (where the net branches) An oaShape or oaVia that is part of geometric routing Routes should be constructed so that the end points and layers of each object match those of the adjacent object。 The database checks this status with the isContiguous member function。 Routes may have a default oaConstraintGroup associated with them that specifies the rules that the router follows when the oaRoute is constructed。 Routing rules can be in the default constraint group of the route itself, or routing rules can be on the oNet, oaBlock , or oaDesign to which the Route belongs。 Routing rules can also be in the default constraint group of the oaBoundary that contains the oaRoute。 A design may satisfy a connection on a net by abutment, where no additional wire is needed because the pins to be connected overlap。 In this case the design should indicate that the connection is fully routed by creating an empty route。 In the case that there are abutted pins and also additional routing on the net, this means there should be two empty routes (for the two abutted pins) that connect to a steiner。 An additional non-empty route would also connect to that steiner。 The oaRoute class can be observed by deriving from oaObserver<oaRoute> 。</p>
|
|
<h2 id="_3">方法总览</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>状态</th>
|
|
<th>Python 调用</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.getRouteStatus()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.getBeginConn()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.getEndConn()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.getNumObjects()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.getObjects(objects)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.isGlobal()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.isContiguous()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.hasGuide()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.hasDefaultConstraintGroup()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.getDefaultConstraintGroup()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.setRouteStatus(routeStatus)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.setBeginConn(object)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.setEndConn(object)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.setGlobal(global)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.setObjects(objects)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.unsetBeginConn()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.unsetEndConn()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.unsetObjects()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>obj.destroyObjects()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>✅</td>
|
|
<td><code>_design.oaRoute.create(block, net=NULL, isGlobal=false, stat=oacNormalRouteStatus)</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h2 id="_4">方法说明</h2>
|
|
<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 route status of this route。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.getRouteStatus()
|
|
</code></pre>
|
|
<h3 id="objgetbeginconn"><code>obj.getBeginConn()</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.getBeginConn()</code></p>
|
|
<p>This function returns the beginning connection object of this route。 If this route does not have a beginning connection object, NULL is returned。 A beginning connection object may be an oaTerm , oaInstTerm , oaSteiner , oaPin , oaShape or oaVia 。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.getBeginConn()
|
|
</code></pre>
|
|
<h3 id="objgetendconn"><code>obj.getEndConn()</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.getEndConn()</code></p>
|
|
<p>This function returns the end connection object of this route。 If this route does not have a end connection object, NULL is returned。 An end connection object may be an oaTerm , oaInstTerm , oaSteiner , oaPin , oaShape or oaVia 。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.getEndConn()
|
|
</code></pre>
|
|
<h3 id="objgetnumobjects"><code>obj.getNumObjects()</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.getNumObjects()</code></p>
|
|
<p>This function returns the number of objects that this route contains。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.getNumObjects()
|
|
</code></pre>
|
|
<h3 id="objgetobjectsobjects"><code>obj.getObjects(objects)</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.getObjects(objects)</code></p>
|
|
<p>This function retrieves the ordered set of objects associated with this route and returns them via the specified 'objects' array。</p>
|
|
<p><strong>参数</strong></p>
|
|
<ul>
|
|
<li><code>objects</code>: A reference to an oaRouteObjectArray object to be populated。</li>
|
|
</ul>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.getObjects(objects)
|
|
</code></pre>
|
|
<h3 id="objisglobal"><code>obj.isGlobal()</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.isGlobal()</code></p>
|
|
<p>This function returns true if this is a global route, false otherwise。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.isGlobal()
|
|
</code></pre>
|
|
<h3 id="objiscontiguous"><code>obj.isContiguous()</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.isContiguous()</code></p>
|
|
<p>This function returns a Boolean value indicating whether all objects in the route, which may be oaPathSegs, oaVias and/or oaGuides, are contiguous。 Since a route can span multiple layers, the contiguity of a route is determined on the basis of the points at which each adjacent object connects to the next and the layer where each connection is made。 Specifically, this function returns true if the end point of each object matches the begin point of the next object on the route and if the layers of objects at their connection points match。 Note that this function returns true for single-object routes or zero-object (empty) routes。 For vias, the via origin is both the begin and end point。 The layer usage depends on the via direction set on the via (see oaVia::setDirection )。 For example, if the direction is set to oacLayer1ToLayer2ViaDirection, the via's layer1 must match the element before the Via and its layer2 must match the element after it。 This function returns false for vias that are not bound to a viaDef。 For guides, if the begin/end layer has not been specified, this function assumes that the guide begin/end layer matches any layer specified for the adjacent object。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.isContiguous()
|
|
</code></pre>
|
|
<h3 id="objhasguide"><code>obj.hasGuide()</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.hasGuide()</code></p>
|
|
<p>This function returns a boolean indicating whether or not this route has one or more guides in it。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.hasGuide()
|
|
</code></pre>
|
|
<h3 id="objhasdefaultconstraintgroup"><code>obj.hasDefaultConstraintGroup()</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.hasDefaultConstraintGroup()</code></p>
|
|
<p>This function returns a boolean indicating whether there are constraints associated with this route。 Constraints in this constraint group apply to the objects in the oaRoute's oaRouteArray, namely its oaPathSegs, oaVias, and oaGuides。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.hasDefaultConstraintGroup()
|
|
</code></pre>
|
|
<h3 id="objgetdefaultconstraintgroup"><code>obj.getDefaultConstraintGroup()</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.getDefaultConstraintGroup()</code></p>
|
|
<p>This function returns the constraint group for this route。 If no constraints exist on the route, a new constraint group is created。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.getDefaultConstraintGroup()
|
|
</code></pre>
|
|
<h3 id="objsetroutestatusroutestatus"><code>obj.setRouteStatus(routeStatus)</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.setRouteStatus(routeStatus)</code></p>
|
|
<p>This function sets the route status attribute of this route to the specified value。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.setRouteStatus(routeStatus)
|
|
</code></pre>
|
|
<h3 id="objsetbeginconnobject"><code>obj.setBeginConn(object)</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.setBeginConn(object)</code></p>
|
|
<p>This function sets the beginning connection object of this route to the specified object。 If this route already has a beginning connection object, it is disconnected first。 A beginning connection object may be an oaTerm , oaInstTerm , oaSteiner , oaPin , oaShape or oaVia 。</p>
|
|
<p><strong>参数</strong></p>
|
|
<ul>
|
|
<li><code>object</code>: The object to be connected to the begin of this route。</li>
|
|
</ul>
|
|
<p><strong>异常</strong></p>
|
|
<ul>
|
|
<li><code>oacInvalidRouteConnObj</code>。</li>
|
|
<li><code>oacRouteAndConnNotInSameBlock</code>。</li>
|
|
<li><code>oacCannotSetRouteObjAsRouteConn</code>。</li>
|
|
</ul>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.setBeginConn(object)
|
|
</code></pre>
|
|
<h3 id="objsetendconnobject"><code>obj.setEndConn(object)</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.setEndConn(object)</code></p>
|
|
<p>This function sets the end connection object of this route to the specified object。 If this route already has a end connection object, it is disconnected first。 An end connection object may be an oaTerm , oaInstTerm , oaSteiner , oaPin , oaShape or oaVia 。</p>
|
|
<p><strong>参数</strong></p>
|
|
<ul>
|
|
<li><code>object</code>: The object to be connected to the end of this route。</li>
|
|
</ul>
|
|
<p><strong>异常</strong></p>
|
|
<ul>
|
|
<li><code>oacInvalidRouteConnObj</code>。</li>
|
|
<li><code>oacRouteAndConnNotInSameBlock</code>。</li>
|
|
<li><code>oacCannotSetRouteObjAsRouteConn</code>。</li>
|
|
</ul>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.setEndConn(object)
|
|
</code></pre>
|
|
<h3 id="objsetglobalglobal"><code>obj.setGlobal(global)</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.setGlobal(global)</code></p>
|
|
<p>This function sets the global attribute of this route to the specified value。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.setGlobal(global)
|
|
</code></pre>
|
|
<h3 id="objsetobjectsobjects"><code>obj.setObjects(objects)</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.setObjects(objects)</code></p>
|
|
<p>This function sets the objects of this route to the specified objects。 If the route had any existing objects, they are removed from the route first。 If the route is connected to a net, each object in the new set of route objects is effectively considered to be on that net。 Only pathSegs, vias and guides are qualified to become a route object and they need to be in the same block as the route。 A pathSeg or via that implements a pin is disqualified to be a route object。 A pathSeg or via that is currently acting as a route connecting object also cannot become part of a route。 If both the route and the object being added to it are connected to a net, the net needs to be the same。 Also, the set of objects specified to be added to the route should be unique。</p>
|
|
<p><strong>参数</strong></p>
|
|
<ul>
|
|
<li><code>objects</code>: A reference to an oaRouteObjectArray object holding the new set of objects for this route。</li>
|
|
</ul>
|
|
<p><strong>异常</strong></p>
|
|
<ul>
|
|
<li><code>oacObjectNotValidForRoute</code>。</li>
|
|
<li><code>oacRouteAndObjectNotInSameBlock</code>。</li>
|
|
<li><code>oacCannotAddPinFigToRoute</code>。</li>
|
|
<li><code>oacCannotAddRouteConnFigToRoute</code>。</li>
|
|
<li><code>oacCannotAddFigToRouteOnDifferentNet</code>。</li>
|
|
<li><code>oacCannotAddSameFigToRouteAgain</code>。</li>
|
|
</ul>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.setObjects(objects)
|
|
</code></pre>
|
|
<h3 id="objunsetbeginconn"><code>obj.unsetBeginConn()</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.unsetBeginConn()</code></p>
|
|
<p>This function attempts to disconnect this route from its beginning connection object。 If this route does not have a beginning connection object, this function does nothing。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.unsetBeginConn()
|
|
</code></pre>
|
|
<h3 id="objunsetendconn"><code>obj.unsetEndConn()</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.unsetEndConn()</code></p>
|
|
<p>This function disconnects this route from its end connection object。 If this route does not have a end connection object, this function does nothing。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.unsetEndConn()
|
|
</code></pre>
|
|
<h3 id="objunsetobjects"><code>obj.unsetObjects()</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.unsetObjects()</code></p>
|
|
<p>This function disassociates this route from all of its objects。 If the route was connected to a net, the disassociated objects acquire the route's net as part of the disassociation process。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.unsetObjects()
|
|
</code></pre>
|
|
<h3 id="objdestroyobjects"><code>obj.destroyObjects()</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>obj.destroyObjects()</code></p>
|
|
<p>This function first disassociates this route from all of its objects and then destroys all the objects that were part of it。</p>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
# assume obj is a oaRoute
|
|
obj.destroyObjects()
|
|
</code></pre>
|
|
<h3 id="_designoaroutecreateblock-netnull-isglobalfalse-statoacnormalroutestatus"><code>_design.oaRoute.create(block, net=NULL, isGlobal=false, stat=oacNormalRouteStatus)</code></h3>
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
|
<p><strong>Python 调用</strong>: <code>_design.oaRoute.create(block, net=NULL, isGlobal=false, stat=oacNormalRouteStatus)</code></p>
|
|
<p>This function creates a route with the specified attributes。 An exception is thrown if a net is specified but it is from a different block than the one specified。</p>
|
|
<p><strong>参数</strong></p>
|
|
<ul>
|
|
<li><code>block</code>: The block in which the route is to be created。</li>
|
|
<li><code>net</code>: The net to which the route may be attached。</li>
|
|
<li><code>isGlobal</code>: A boolean indicating whether it should be a global route。</li>
|
|
<li><code>stat</code>: The initial routing status to be assigned to the new route。</li>
|
|
</ul>
|
|
<p><strong>异常</strong></p>
|
|
<ul>
|
|
<li><code>oacNetFigNotInSameBlock</code>。</li>
|
|
</ul>
|
|
<p><strong>Python 示例</strong></p>
|
|
<pre><code class="language-python">from oapy._oa import _design
|
|
|
|
_design.oaRoute.create(block, net=NULL, isGlobal=false, stat=oacNormalRouteStatus)
|
|
</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-getroutestatus"><code>obj.getRouteStatus()</code></a></li><li><a href="#obj-getbeginconn"><code>obj.getBeginConn()</code></a></li><li><a href="#obj-getendconn"><code>obj.getEndConn()</code></a></li><li><a href="#obj-getnumobjects"><code>obj.getNumObjects()</code></a></li><li><a href="#obj-getobjects-objects"><code>obj.getObjects(objects)</code></a></li><li><a href="#obj-isglobal"><code>obj.isGlobal()</code></a></li><li><a href="#obj-iscontiguous"><code>obj.isContiguous()</code></a></li><li><a href="#obj-hasguide"><code>obj.hasGuide()</code></a></li><li><a href="#obj-hasdefaultconstraintgroup"><code>obj.hasDefaultConstraintGroup()</code></a></li><li><a href="#obj-getdefaultconstraintgroup"><code>obj.getDefaultConstraintGroup()</code></a></li><li><a href="#obj-setroutestatus-routestatus"><code>obj.setRouteStatus(routeStatus)</code></a></li><li><a href="#obj-setbeginconn-object"><code>obj.setBeginConn(object)</code></a></li><li><a href="#obj-setendconn-object"><code>obj.setEndConn(object)</code></a></li><li><a href="#obj-setglobal-global"><code>obj.setGlobal(global)</code></a></li><li><a href="#obj-setobjects-objects"><code>obj.setObjects(objects)</code></a></li><li><a href="#obj-unsetbeginconn"><code>obj.unsetBeginConn()</code></a></li><li><a href="#obj-unsetendconn"><code>obj.unsetEndConn()</code></a></li><li><a href="#obj-unsetobjects"><code>obj.unsetObjects()</code></a></li><li><a href="#obj-destroyobjects"><code>obj.destroyObjects()</code></a></li><li><a href="#design-oaroute-create-block-net-null-isglobal-false-stat-oacnormalroutestatus"><code>_design.oaRoute.create(block, net=NULL, isGlobal=false, stat=oacNormalRouteStatus)</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>
|