686 lines
32 KiB
HTML
686 lines
32 KiB
HTML
|
|
<!doctype html>
|
||
|
|
<html lang="zh-CN">
|
||
|
|
<head>
|
||
|
|
<meta charset="utf-8">
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
|
|
<title>oaLayerArrayConstraint</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" href="../design/index.html">design</a><a class="tab active" 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 href="../design/index.html">design</a></li><li><a class="active-link" 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">tech 类</div><div class="sidebar-body"><input class="sidebar-search" type="search" placeholder="筛选类" data-class-filter><ul><li data-class-item data-class-name="oaanalysislib"><a href="oaAnalysisLib.html">oaAnalysisLib</a></li><li data-class-item data-class-name="oaantennaarea"><a href="oaAntennaArea.html">oaAntennaArea</a></li><li data-class-item data-class-name="oaantennaareaarray"><a href="oaAntennaAreaArray.html">oaAntennaAreaArray</a></li><li data-class-item data-class-name="oaantennadata"><a href="oaAntennaData.html">oaAntennaData</a></li><li data-class-item data-class-name="oaantennamodel"><a href="oaAntennaModel.html">oaAntennaModel</a></li><li data-class-item data-class-name="oaantennaratioarrayvalue"><a href="oaAntennaRatioArrayValue.html">oaAntennaRatioArrayValue</a></li><li data-class-item data-class-name="oaantennaratiovalue"><a href="oaAntennaRatioValue.html">oaAntennaRatioValue</a></li><li data-class-item data-class-name="oaarraysitedef"><a href="oaArraySiteDef.html">oaArraySiteDef</a></li><li data-class-item data-class-name="oaclearancemeasure"><a href="oaClearanceMeasure.html">oaClearanceMeasure</a></li><li data-class-item data-class-name="oacustomviadef"><a href="oaCustomViaDef.html">oaCustomViaDef</a></li><li data-class-item data-class-name="oacustomviavariant"><a href="oaCustomViaVariant.html">oaCustomViaVariant</a></li><li data-class-item data-class-name="oaderivedlayer"><a href="oaDerivedLayer.html">oaDerivedLayer</a></li><li data-class-item data-class-name="oaderivedlayerconnectivitytype"><a href="oaDerivedLayerConnectivityType.html">oaDerivedLayerConnectivityType</a></li><li data-class-item data-class-name="oaderivedlayerdef"><a href="oaDerivedLayerDef.html">oaDerivedLayerDef</a></li><li data-class-item data-class-name="oaderivedlayerparam"><a href="oaDerivedLayerParam.html">oaDerivedLayerParam</a></li><li data-class-item data-class-name="oaderivedlayerparamarray"><a href="oaDerivedLayerParamArray.html">oaDerivedLayerParamArray</a></li><li data-class-item data-class-name="oaderivedlayerparamdef"><a href="oaDerivedLayerParamDef.html">oaDerivedLayerParamDef</a></li><li data-class-item data-class-name="oaderivedlayerparamtype"><a href="oaDerivedLayerParamType.html">oaDerivedLayerParamType</a></li><li data-class-item data-class-name="oalayer"><a href="oaLayer.html">oaLayer</a></li><li data-class-item data-class-name="oalayerarray"><a href="oaLayerArray.html">oaLayerArray</a></li><li data-class-item data-class-name="oalayerarrayconstraint"><a class="active-link" href="oaLayerArrayConstraint.html">oaLayerArrayConstraint</a></li><li data-class-item data-class-name="oalayerarrayvalue"><a href="oaLayerArrayValue.html">oaLayerArrayValue</a></li><li data-class-item data-class-name="oalayerconstraint"><a href="oaLayerConstraint.html">oaLayerConstraint</a></li><li data-class-item data-class-name="oalayernamearray"><a href="oaLayerNameArray.html">oaLayerNameArray</a></li><li data-class-item data-class-name="oalayerop"><a href="oaLayerOp.html">oaLayerOp</a></li><li data-class-item data-class-name="oalayerpairconstraint"><a href="oaLayerPairConstraint.html">oaLayerPairConstraint</a></li><li data-class-item data-class-name="oalayervalue"><a href="oaLayerValue.html">oaLayerValue</a></li><li data-class-item data-class-name="oamaterial"><a href="oaMaterial.html">oaMaterial</a></li><li data-class-item data-class-name="oaoppoint"><a href="oaOpPoint.html">oaOpPoint</a></li><li data-class-item data-class-name="oaphysicallayer"><a href="o
|
||
|
|
<main class="content">
|
||
|
|
<div class="content-grid">
|
||
|
|
<div class="doc">
|
||
|
|
<div class="crumbs"><a href="../index.html">首页</a> / <a href="index.html">tech</a> / oaLayerArrayConstraint</div>
|
||
|
|
<h1 id="oalayerarrayconstraint">oaLayerArrayConstraint</h1>
|
||
|
|
<p><strong>模块</strong>: <code>oapy._oa._tech</code>
|
||
|
|
<strong>导入</strong>: <code>from oapy._oa import _tech</code></p>
|
||
|
|
<h2 id="_1">概览</h2>
|
||
|
|
<p><code>oaLayerArrayConstraint</code> 在 <code>oapy</code> 中可用,可通过 <code>_tech</code> 模块访问。</p>
|
||
|
|
<p>本页汇总 <code>oaLayerArrayConstraint</code> 当前在 <code>oapy</code> 中可用的 Python 接口。</p>
|
||
|
|
<h2 id="_2">详细说明</h2>
|
||
|
|
<p>This class represents a constraint object that constrains interactions between more than two layers。 Full description of oaLayerArrayConstraint includes the following: An array of layers ( oaLayerArray ) The constraint definition ( oaLayerArrayConstraintDef ) The constraint name ( oaString )。 When creating an oaLayerArrayConstraint, providing the name is optional。 If the name is not specified, the new constraint is auto-named by OpenAccess。 The constraint value ( oaValue )。 oaLayerArrayConstraint must be created in the same database as that value。 A boolean attribute (oaBoolean) indicating whether the constraint is hard, which means it must be met, or soft。 An optional list of constraint parameters ( oaConstraintParamArray )。 oaLayerArrayConstraints get applied to objects by being placed in an oaConstraintGroup 。</p>
|
||
|
|
<h2 id="_3">方法总览</h2>
|
||
|
|
<table>
|
||
|
|
<thead>
|
||
|
|
<tr>
|
||
|
|
<th>状态</th>
|
||
|
|
<th>Python 调用</th>
|
||
|
|
</tr>
|
||
|
|
</thead>
|
||
|
|
<tbody>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getLayers(layerNums)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>obj.getPurposes(purposeNums)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>_tech.oaLayerArrayConstraint.create(layerNums, def, value, isHard=true, params=NULL)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>_tech.oaLayerArrayConstraint.create(layerNums, def, name, value, isHard=true, params=NULL)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>_tech.oaLayerArrayConstraint.create(layerNums, purposeNums, def, value, isHard=true, params=NULL)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>_tech.oaLayerArrayConstraint.create(layerNums, purposeNums, def, name, value, isHard=true, params=NULL)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>_tech.oaLayerArrayConstraint.find(group, layerNums, def, hardOnly=false)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>_tech.oaLayerArrayConstraint.find(group, layerNums, purposeNums, def, hardOnly=false)</code></td>
|
||
|
|
</tr>
|
||
|
|
<tr>
|
||
|
|
<td>✅</td>
|
||
|
|
<td><code>_tech.oaLayerArrayConstraint.getConstraints(group, layerNums, def=NULL)</code></td>
|
||
|
|
</tr>
|
||
|
|
</tbody>
|
||
|
|
</table>
|
||
|
|
<h2 id="_4">方法说明</h2>
|
||
|
|
<h3 id="objgetlayerslayernums"><code>obj.getLayers(layerNums)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getLayers(layerNums)</code></p>
|
||
|
|
<p>This function returns the layer numbers associated with this layer array constraint。 The function fills the layer array provided by the caller。 All layer numbers that existed in the layer array before the call are removed from the array, so that after the function returns, the layerNums array contains only the layers on which the constraint depends。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>layerNums</code>: The layer numbers of the constraint。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _tech
|
||
|
|
|
||
|
|
# assume obj is a oaLayerArrayConstraint
|
||
|
|
obj.getLayers(layerNums)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="objgetpurposespurposenums"><code>obj.getPurposes(purposeNums)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>obj.getPurposes(purposeNums)</code></p>
|
||
|
|
<p>This function returns the purpose numbers associated with this layer constraint and fills the purposeNums array provided by the caller。 Any purpose numbers that exist in the array before the call are removed。 After the function returns, the purposeNums array contains only the purpose numbers on which the constraint depends。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>purposeNums</code>: The returned array of purpose numbers for this constraint。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _tech
|
||
|
|
|
||
|
|
# assume obj is a oaLayerArrayConstraint
|
||
|
|
obj.getPurposes(purposeNums)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="_techoalayerarrayconstraintcreatelayernums-def-value-ishardtrue-paramsnull"><code>_tech.oaLayerArrayConstraint.create(layerNums, def, value, isHard=true, params=NULL)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>_tech.oaLayerArrayConstraint.create(layerNums, def, value, isHard=true, params=NULL)</code></p>
|
||
|
|
<p>This function creates an explicitly named constraint。 The new layer array constraint is created in the same database as the value specified and with the specified purpose。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>layerNums</code>: The array of layer numbers that this constraint applies to。</li>
|
||
|
|
<li><code>purposeNums</code>: The list of purpose numbers for this constraint。</li>
|
||
|
|
<li><code>def</code>: The definition for this constraint。</li>
|
||
|
|
<li><code>name</code>: The name of this constraint。</li>
|
||
|
|
<li><code>value</code>: The constraint value。</li>
|
||
|
|
<li><code>isHard</code>: A boolean indicating whether this constraint must be met。</li>
|
||
|
|
<li><code>params</code>: The parameters associated with this constraint。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>异常</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>oacValueAlreadyOwned</code>。</li>
|
||
|
|
<li><code>oacInvalidDatabaseForLayerArrayConstraint</code>。</li>
|
||
|
|
<li><code>oacConstraintParamAlreadyOwned</code>。</li>
|
||
|
|
<li><code>oacConstraintParamNotInSameDB</code>。</li>
|
||
|
|
<li><code>oacInvalidValueForConstraintDef</code>。</li>
|
||
|
|
<li><code>oacInvalidDBForConstraintDef</code>。</li>
|
||
|
|
<li><code>oacInvalidLayerArrayForLayerArrayConstraint</code>。</li>
|
||
|
|
<li><code>oacInvalidPurposeArrayForLayerArrayConstraint</code>。</li>
|
||
|
|
<li><code>oacConstraintNameExists</code>。</li>
|
||
|
|
<li><code>oacInvalidBasePurposeNumber</code>。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _tech
|
||
|
|
|
||
|
|
_tech.oaLayerArrayConstraint.create(layerNums, def, value, isHard=true, params=NULL)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="_techoalayerarrayconstraintcreatelayernums-def-name-value-ishardtrue-paramsnull"><code>_tech.oaLayerArrayConstraint.create(layerNums, def, name, value, isHard=true, params=NULL)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>_tech.oaLayerArrayConstraint.create(layerNums, def, name, value, isHard=true, params=NULL)</code></p>
|
||
|
|
<p>This function creates an auto-named constraint。 The new layer array constraint is created in the same database as the value specified and with the specified purpose。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>layerNums</code>: The array of layer numbers that this constraint applies to。</li>
|
||
|
|
<li><code>purposeNums</code>: The list of purpose numbers for this constraint。</li>
|
||
|
|
<li><code>def</code>: The definition for this constraint。</li>
|
||
|
|
<li><code>value</code>: The constraint value。</li>
|
||
|
|
<li><code>isHard</code>: A boolean indicating whether this constraint must be met。</li>
|
||
|
|
<li><code>params</code>: The parameters associated with this constraint。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>异常</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>oacValueAlreadyOwned</code>。</li>
|
||
|
|
<li><code>oacInvalidDatabaseForLayerArrayConstraint</code>。</li>
|
||
|
|
<li><code>oacConstraintParamAlreadyOwned</code>。</li>
|
||
|
|
<li><code>oacConstraintParamNotInSameDB</code>。</li>
|
||
|
|
<li><code>oacInvalidValueForConstraintDef</code>。</li>
|
||
|
|
<li><code>oacInvalidDBForConstraintDef</code>。</li>
|
||
|
|
<li><code>oacInvalidLayerArrayForLayerArrayConstraint</code>。</li>
|
||
|
|
<li><code>oacInvalidPurposeArrayForLayerArrayConstraint</code>。</li>
|
||
|
|
<li><code>oacInvalidBasePurposeNumber</code>。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _tech
|
||
|
|
|
||
|
|
_tech.oaLayerArrayConstraint.create(layerNums, def, name, value, isHard=true, params=NULL)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="_techoalayerarrayconstraintcreatelayernums-purposenums-def-value-ishardtrue-paramsnull"><code>_tech.oaLayerArrayConstraint.create(layerNums, purposeNums, def, value, isHard=true, params=NULL)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>_tech.oaLayerArrayConstraint.create(layerNums, purposeNums, def, value, isHard=true, params=NULL)</code></p>
|
||
|
|
<p>This function creates a new layer array constraint with the specified name in the same database as the specified value。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>layerNums</code>: The array of layer numbers that this constraint applies to。</li>
|
||
|
|
<li><code>def</code>: The definition for this constraint。</li>
|
||
|
|
<li><code>name</code>: The name of this constraint。</li>
|
||
|
|
<li><code>value</code>: The constraint value。</li>
|
||
|
|
<li><code>isHard</code>: A boolean indicating whether this constraint must be met。</li>
|
||
|
|
<li><code>params</code>: The parameters associated with this constraint。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>异常</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>oacValueAlreadyOwned</code>。</li>
|
||
|
|
<li><code>oacInvalidDatabaseForLayerArrayConstraint</code>。</li>
|
||
|
|
<li><code>oacConstraintNameExists</code>。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _tech
|
||
|
|
|
||
|
|
_tech.oaLayerArrayConstraint.create(layerNums, purposeNums, def, value, isHard=true, params=NULL)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="_techoalayerarrayconstraintcreatelayernums-purposenums-def-name-value-ishardtrue-paramsnull"><code>_tech.oaLayerArrayConstraint.create(layerNums, purposeNums, def, name, value, isHard=true, params=NULL)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>_tech.oaLayerArrayConstraint.create(layerNums, purposeNums, def, name, value, isHard=true, params=NULL)</code></p>
|
||
|
|
<p>This function creates a new, auto-named layer array constraint in the same database as the specified value。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>layerNums</code>: The array of layer numbers that this constraint applies to。</li>
|
||
|
|
<li><code>def</code>: The definition for this constraint。</li>
|
||
|
|
<li><code>value</code>: The constraint value。</li>
|
||
|
|
<li><code>isHard</code>: A boolean indicating whether this constraint must be met。</li>
|
||
|
|
<li><code>params</code>: The parameters associated with this constraint。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>异常</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>oacValueAlreadyOwned</code>。</li>
|
||
|
|
<li><code>oacInvalidDatabaseForLayerArrayConstraint</code>。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _tech
|
||
|
|
|
||
|
|
_tech.oaLayerArrayConstraint.create(layerNums, purposeNums, def, name, value, isHard=true, params=NULL)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="_techoalayerarrayconstraintfindgroup-layernums-def-hardonlyfalse"><code>_tech.oaLayerArrayConstraint.find(group, layerNums, def, hardOnly=false)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>_tech.oaLayerArrayConstraint.find(group, layerNums, def, hardOnly=false)</code></p>
|
||
|
|
<p>This function returns the first constraint in this group that matches the definition, layers, purposes, and isHard attribute specified。 If no such constraint is found NULL is returned。 oavPurposeNumberAny acts as a wildcard and selects any purpose number。 If the purpose number array includes oavPurposeNumberAny, the returned constraint must have the other purposes explicitly specified in the array plus any other purpose。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>group</code>: The constraint group in which to locate the constraint。</li>
|
||
|
|
<li><code>layerNums</code>: The layer numbers to match。</li>
|
||
|
|
<li><code>purposeNums</code>: The purpose numbers to match。</li>
|
||
|
|
<li><code>def</code>: The layer definition。</li>
|
||
|
|
<li><code>hardOnly</code>: A boolean indicating whether the constraint to match is hard or soft。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _tech
|
||
|
|
|
||
|
|
_tech.oaLayerArrayConstraint.find(group, layerNums, def, hardOnly=false)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="_techoalayerarrayconstraintfindgroup-layernums-purposenums-def-hardonlyfalse"><code>_tech.oaLayerArrayConstraint.find(group, layerNums, purposeNums, def, hardOnly=false)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>_tech.oaLayerArrayConstraint.find(group, layerNums, purposeNums, def, hardOnly=false)</code></p>
|
||
|
|
<p>This function returns the first constraint in this group that matches the specified definition, layers and isHard attribute。 If no such constraint is found, NULL is returned。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>group</code>: The constraint group in which to locate the constraint。</li>
|
||
|
|
<li><code>layerNums</code>: The layer numbers to match。</li>
|
||
|
|
<li><code>def</code>: The layer definition。</li>
|
||
|
|
<li><code>hardOnly</code>: A boolean indicating a hard or soft constraint。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _tech
|
||
|
|
|
||
|
|
_tech.oaLayerArrayConstraint.find(group, layerNums, purposeNums, def, hardOnly=false)
|
||
|
|
</code></pre>
|
||
|
|
<h3 id="_techoalayerarrayconstraintgetconstraintsgroup-layernums-defnull"><code>_tech.oaLayerArrayConstraint.getConstraints(group, layerNums, def=NULL)</code></h3>
|
||
|
|
<p><strong>绑定状态</strong>: 已绑定</p>
|
||
|
|
<p><strong>Python 调用</strong>: <code>_tech.oaLayerArrayConstraint.getConstraints(group, layerNums, def=NULL)</code></p>
|
||
|
|
<p>This function returns a collection of layer array constraints, with the specified definition, and based on the specified layers, in the specified group。 If no definition is specified, all layer array constraints on the specified layers in the group are returned。</p>
|
||
|
|
<p><strong>参数</strong></p>
|
||
|
|
<ul>
|
||
|
|
<li><code>group</code>: The constraint group that the collection belongs to。</li>
|
||
|
|
<li><code>layerNums</code>: The layer numbers of the constraint to match。</li>
|
||
|
|
<li><code>def</code>: An optional layer array constraint definition to match。</li>
|
||
|
|
</ul>
|
||
|
|
<p><strong>Python 示例</strong></p>
|
||
|
|
<pre><code class="language-python">from oapy._oa import _tech
|
||
|
|
|
||
|
|
_tech.oaLayerArrayConstraint.getConstraints(group, layerNums, def=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-getlayers-layernums"><code>obj.getLayers(layerNums)</code></a></li><li><a href="#obj-getpurposes-purposenums"><code>obj.getPurposes(purposeNums)</code></a></li><li><a href="#tech-oalayerarrayconstraint-create-layernums-def-value-ishard-true-params-null"><code>_tech.oaLayerArrayConstraint.create(layerNums, def, value, isHard=true, params=NULL)</code></a></li><li><a href="#tech-oalayerarrayconstraint-create-layernums-def-name-value-ishard-true-params-null"><code>_tech.oaLayerArrayConstraint.create(layerNums, def, name, value, isHard=true, params=NULL)</code></a></li><li><a href="#tech-oalayerarrayconstraint-create-layernums-purposenums-def-value-ishard-true-params-null"><code>_tech.oaLayerArrayConstraint.create(layerNums, purposeNums, def, value, isHard=true, params=NULL)</code></a></li><li><a href="#tech-oalayerarrayconstraint-create-layernums-purposenums-def-name-value-ishard-true-params-null"><code>_tech.oaLayerArrayConstraint.create(layerNums, purposeNums, def, name, value, isHard=true, params=NULL)</code></a></li><li><a href="#tech-oalayerarrayconstraint-find-group-layernums-def-hardonly-false"><code>_tech.oaLayerArrayConstraint.find(group, layerNums, def, hardOnly=false)</code></a></li><li><a href="#tech-oalayerarrayconstraint-find-group-layernums-purposenums-def-hardonly-false"><code>_tech.oaLayerArrayConstraint.find(group, layerNums, purposeNums, def, hardOnly=false)</code></a></li><li><a href="#tech-oalayerarrayconstraint-getconstraints-group-layernums-def-null"><code>_tech.oaLayerArrayConstraint.getConstraints(group, layerNums, def=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>
|