Files
oapy/design/oaLayerBlockage.html
2026-06-02 14:14:41 +08:00

747 lines
54 KiB
HTML

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>oaLayerBlockage</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 class="active-link" 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 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> / oaLayerBlockage</div>
<h1 id="oalayerblockage">oaLayerBlockage</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>oaLayerBlockage</code><code>oapy</code> 中可用,可通过 <code>_design</code> 模块访问。</p>
<p>本页汇总 <code>oaLayerBlockage</code> 当前在 <code>oapy</code> 中可用的 Python 接口。</p>
<h2 id="_2">详细说明</h2>
<p>A layer blockage is a type of blockage representing an area on a given layer。 The shape of a blockage is described using an oaPointArray 。 Coincident and collinear points are illegal in the point array for a layer blockage。 For more information on coincident and collinear points, see oaPointArray::compress() oaLayerBlockages may have an effective width。 This is the value that is used by routing tools to determine the minimum spacing constraint for other geometry placed near the blockage。 Typically, if a blockage has no effective width ( hasEffectiveWidth() is false), the blockage should be treated as "real geometry" by tools, and its width is the width of the blockage plus any other adjacent geometry。</p>
<h2 id="_3">方法总览</h2>
<table>
<thead>
<tr>
<th>状态</th>
<th>Python 调用</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td><code>obj.getLayerNum()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getLayerHeader()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getEffectiveWidth()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.hasEffectiveWidth()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getSpacing()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.hasSpacing()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.allowPGNet()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.setLayerNum(layerNum)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.setPoints(points)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.setEffectiveWidth(width)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.unsetEffectiveWidth()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.setSpacing(spacing)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.unsetSpacing()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.setAllowPGNet(allowPGNet)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.transform(scale, angle)</code></td>
</tr>
<tr>
<td></td>
<td><code>_design.oaLayerBlockage.create(block, type, layer, points, owner=NULL)</code></td>
</tr>
</tbody>
</table>
<h2 id="_4">方法说明</h2>
<h3 id="objgetlayernum"><code>obj.getLayerNum()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getLayerNum()</code></p>
<p>This function returns the layer number associated with this blockage。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.getLayerNum()
</code></pre>
<h3 id="objgetlayerheader"><code>obj.getLayerHeader()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getLayerHeader()</code></p>
<p>This function returns the layerHeader for the layer of this blockage。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.getLayerHeader()
</code></pre>
<h3 id="objgeteffectivewidth"><code>obj.getEffectiveWidth()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getEffectiveWidth()</code></p>
<p>This function returns the effective width of with this blockage。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.getEffectiveWidth()
</code></pre>
<h3 id="objhaseffectivewidth"><code>obj.hasEffectiveWidth()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.hasEffectiveWidth()</code></p>
<p>This function returns a boolean indicating whether or not an effective width has been set for this blockage。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.hasEffectiveWidth()
</code></pre>
<h3 id="objgetspacing"><code>obj.getSpacing()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getSpacing()</code></p>
<p>This function returns the spacing attribute on this blockage。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.getSpacing()
</code></pre>
<h3 id="objhasspacing"><code>obj.hasSpacing()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.hasSpacing()</code></p>
<p>This function returns a boolean indicating whether or not the effective spacing attribute is set for this blockage。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.hasSpacing()
</code></pre>
<h3 id="objallowpgnet"><code>obj.allowPGNet()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.allowPGNet()</code></p>
<p>This function returns a boolean indicating whether shapes for power and ground nets are allowed within this blockage area。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.allowPGNet()
</code></pre>
<h3 id="objsetlayernumlayernum"><code>obj.setLayerNum(layerNum)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.setLayerNum(layerNum)</code></p>
<p>This function moves this blockage to the specified layer。 The new layer is created if it does not exist。 The old layer is deleted if it becomes empty。 A layer may not be set on placement blockages。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>layerNum</code>: The layer number。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacInvalidLayerForLayerBlockage</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.setLayerNum(layerNum)
</code></pre>
<h3 id="objsetpointspoints"><code>obj.setPoints(points)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.setPoints(points)</code></p>
<p>This function updates the shape of the blockages to the shape specified by the pointArray。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>points</code>: The pointArray describing the new shape of the blockage。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacBlockageHasExtraPoints</code></li>
<li><code>oacBlockageTooFewPoints</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.setPoints(points)
</code></pre>
<h3 id="objseteffectivewidthwidth"><code>obj.setEffectiveWidth(width)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.setEffectiveWidth(width)</code></p>
<p>This function sets the effective width of this blockage。 The effective width value allows you to specify what width should be used when looking up the minimum spacing value in the technology database。 Usage is as follows: no Width: Use the actual blockage size to look up min spacing。 Width &gt; 0: Use the given width to look up minimum spacing。 Width = 0: No spacing required。 By default, blockage effective width is used to set spacing。 oaLayerBlockage::setSpacing also can be used to set spacing。 Note, however, that the spacing and effective width attributes are mutually exclusive。 An attempt to set the effective width attribute on a blockage without first unsetting an existing spacing attribute throws an oacBlockageSpacingWidthExclusive exception。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>width</code>: effective width value。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacBlockageSpacingWidthExclusive</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.setEffectiveWidth(width)
</code></pre>
<h3 id="objunseteffectivewidth"><code>obj.unsetEffectiveWidth()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.unsetEffectiveWidth()</code></p>
<p>This function removes the effective width value for this blockage。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.unsetEffectiveWidth()
</code></pre>
<h3 id="objsetspacingspacing"><code>obj.setSpacing(spacing)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.setSpacing(spacing)</code></p>
<p>This function sets the spacing attribute for this blockage。 The spacing and effective width attributes are mutually exclusive。 By default, the spacing attribute is unset, which means the blockage effective width is used to set spacing。 An attempt to set the spacing attribute on a blockage, without first unsetting an existing effective width attribute, throws an oacBlockageSpacingWidthExclusive exception。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>spacing</code>: The spacing value for this blockage。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacBlockageSpacingWidthExclusive</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.setSpacing(spacing)
</code></pre>
<h3 id="objunsetspacing"><code>obj.unsetSpacing()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.unsetSpacing()</code></p>
<p>This function unsets the spacing attribute for this blockage。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.unsetSpacing()
</code></pre>
<h3 id="objsetallowpgnetallowpgnet"><code>obj.setAllowPGNet(allowPGNet)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.setAllowPGNet(allowPGNet)</code></p>
<p>This function sets the allowPGNet attribute for this blockage。 When set, shapes for the signal types oacPowerSigType and oacGroundSigType are allowed within the blockage area。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>allowPGNet</code>: </li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.setAllowPGNet(allowPGNet)
</code></pre>
<h3 id="objtransformscale-angle"><code>obj.transform(scale, angle)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.transform(scale, angle)</code></p>
<p>This function transforms this blockage by the specified scale factor and rotation angle。 If this blockage is a leader in a group, every object in the group is moved with the specified transform。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>scale</code>: The scale for the transformation。</li>
<li><code>angle</code>: The angle of the transformation。</li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaLayerBlockage
obj.transform(scale, angle)
</code></pre>
<h3 id="_designoalayerblockagecreateblock-type-layer-points-ownernull"><code>_design.oaLayerBlockage.create(block, type, layer, points, owner=NULL)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>_design.oaLayerBlockage.create(block, type, layer, points, owner=NULL)</code></p>
<p>This is the constructor for a layer blockage。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>block</code>: The block in which to create the area blockage。</li>
<li><code>type</code>: The type of blockage to create。 Note: an oaLayerBlockage should not have a blockageType of oacPlacementBlockageType。</li>
<li><code>layer</code>: The layer on which to create the blockage。</li>
<li><code>points</code>: The pointArray describing the shape of the blockage。</li>
<li><code>owner</code>: The optional cluster or boundary owner of the blockage。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacInvalidLayerForLayerBlockage</code></li>
<li><code>oacInvalidTypeForLayerBlockage</code></li>
<li><code>oacBlockageHasExtraPoints</code></li>
<li><code>oacBlockageTooFewPoints</code></li>
<li><code>oacInvalidBlockageOwner</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
_design.oaLayerBlockage.create(block, type, layer, points, owner=NULL)
</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-getlayernum"><code>obj.getLayerNum()</code></a></li><li><a href="#obj-getlayerheader"><code>obj.getLayerHeader()</code></a></li><li><a href="#obj-geteffectivewidth"><code>obj.getEffectiveWidth()</code></a></li><li><a href="#obj-haseffectivewidth"><code>obj.hasEffectiveWidth()</code></a></li><li><a href="#obj-getspacing"><code>obj.getSpacing()</code></a></li><li><a href="#obj-hasspacing"><code>obj.hasSpacing()</code></a></li><li><a href="#obj-allowpgnet"><code>obj.allowPGNet()</code></a></li><li><a href="#obj-setlayernum-layernum"><code>obj.setLayerNum(layerNum)</code></a></li><li><a href="#obj-setpoints-points"><code>obj.setPoints(points)</code></a></li><li><a href="#obj-seteffectivewidth-width"><code>obj.setEffectiveWidth(width)</code></a></li><li><a href="#obj-unseteffectivewidth"><code>obj.unsetEffectiveWidth()</code></a></li><li><a href="#obj-setspacing-spacing"><code>obj.setSpacing(spacing)</code></a></li><li><a href="#obj-unsetspacing"><code>obj.unsetSpacing()</code></a></li><li><a href="#obj-setallowpgnet-allowpgnet"><code>obj.setAllowPGNet(allowPGNet)</code></a></li><li><a href="#obj-transform-scale-angle"><code>obj.transform(scale, angle)</code></a></li><li><a href="#design-oalayerblockage-create-block-type-layer-points-owner-null"><code>_design.oaLayerBlockage.create(block, type, layer, points, owner=NULL)</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>