Doc updates

This commit is contained in:
Matthias Koefferlein 2021-01-15 00:56:17 +01:00
parent 8051bef9ac
commit ec88362eca
5 changed files with 250 additions and 124 deletions

View File

@ -1125,7 +1125,7 @@ CODE
# %DRC%
# @name first_edges
# @brief Returns the first edges of edge pairs
# @synopsis expression.extents([ enlargement ])
# @synopsis expression.first_edges
#
# This method acts on edge pair expressions and returns the first edges of the
# edge pairs delivered by the expression.
@ -1133,7 +1133,7 @@ CODE
# %DRC%
# @name second_edges
# @brief Returns the second edges of edge pairs
# @synopsis expression.extents([ enlargement ])
# @synopsis expression.second_edges
#
# This method acts on edge pair expressions and returns the second edges of the
# edge pairs delivered by the expression.
@ -1294,6 +1294,86 @@ CODE
end
end
# %DRC%
# @name covering
# @brief Selects shapes entirely covering other shapes
# @synopsis expression.covering(other) (optionally in conditions)
# @synopsis covering(other) (optionally in conditions)
#
# This method represents the selector of primary shapes
# which entirely cover shapes from the other layer. This version can be put into
# a condition indicating how many shapes of the other layer need to be covered.
# Use this variant within \DRC# expressions (also see \Layer#drc).
#
# For example, the following statement selects all input shapes which entirely
# cover shapes from the "other" layer:
#
# @code
# out = in.drc(covering(other))
# @/code
#
# This example selects all input shapes which entire cover shapes from
# the other layer and there are more than two shapes from "other" inside
# primary shapes:
#
# @code
# out = in.drc(covering(other) > 2)
# @/code
# %DRC%
# @name interacting
# @brief Selects shapes interacting with other shapes
# @synopsis expression.interacting(other) (optionally in conditions)
# @synopsis interacting(other) (optionally in conditions)
#
# See \covering for a description of the use cases for this function.
# When using "interacting", shapes are selected when the interact (overlap, touch)
# shapes from the other layer.
#
# When using this method with a count, the operation may not render
# the correct results if the other input is not merged. By nature of the
# generic DRC feature, only those shapes that interact with the primary shape
# will be selected. If the other input is split into multiple polygons,
# not all components may be captured and the computed interaction count
# may be incorrect.
# %DRC%
# @name overlapping
# @brief Selects shapes overlapping with other shapes
# @synopsis expression.overlapping(other) (optionally in conditions)
# @synopsis overlapping(other) (optionally in conditions)
#
# See \covering for a description of the use cases for this function.
# When using "overlapping", shapes are selected when the overlap
# shapes from the other layer.
#
# When using this method with a count, the operation may not render
# the correct results if the other input is not merged. By nature of the
# generic DRC feature, only those shapes that interact with the primary shape
# will be selected. If the other input is split into multiple polygons,
# not all components may be captured and the computed interaction count
# may be incorrect.
# %DRC%
# @name inside
# @brief Selects shapes entirely inside other shapes
# @synopsis expression.inside(other)
# @synopsis inside(other)
#
# This method represents the selector of primary shapes
# which are entirely inside shapes from the other layer.
# Use this variant within \DRC# expressions (also see \Layer#drc).
# %DRC%
# @name outside
# @brief Selects shapes entirely outside other shapes
# @synopsis expression.outside(other)
# @synopsis outside(other)
#
# This method represents the selector of primary shapes
# which are entirely outside shapes from the other layer.
# Use this variant within \DRC# expressions (also see \Layer#drc).
%w(covering overlapping interacting).each do |f|
eval <<"CODE"
def #{f}(other)

View File

@ -13,7 +13,7 @@ module DRC
# @brief Provides a generic DRC function for use with \DRC# expressions
# @synopsis layer.drc(expression)
#
# This method implement the universal DRC which offers enhanced abilities,
# This method implements the universal DRC which offers enhanced abilities,
# improved performance in some applications and better readability.
#
# The key concept for this method are DRC expressions. DRC expressions
@ -56,7 +56,7 @@ module DRC
# @h3 Checks @/h3
#
# Here is an example for a generic DRC operation which performs a width
# check for less than 0.5.um on the primary shapes. It uses the \global#width operator:
# check for less than 0.5.um on the primary shapes. It uses the "\global#width" operator:
#
# @code
# out = in.drc(width < 0.5.um)
@ -72,8 +72,8 @@ module DRC
# out = in.drc(0.2.um < width < 0.5.um)
# @/code
#
# To specify the second input for a two-layer check, specify it in brackets in
# the check function. This example shows how to use a two-layer separation check (\global#separation):
# To specify the second input for a two-layer check, add it to
# the check function. This example shows how to use a two-layer separation check ("\global#separation"):
#
# @code
# l1 = input(1, 0)
@ -83,11 +83,11 @@ module DRC
#
# The second input of this check function can be a computed expression. In this
# case the local loop will first evaluate the expression for the second input and
# then use the result for second input in the check. Note that this computation is
# then use the result as second input in the check. Note that this computation is
# performed locally and separately for each primary and its context.
#
# Options for the checks are also specified inside the brackets. For example,
# to specify projection metrics ("projection") for width use:
# to select projection metrics ("projection") for the "width" check use:
#
# @code
# out = in.drc(width(projection) < 0.5.um)
@ -129,11 +129,11 @@ module DRC
# methods are provided:
#
# @ul
# @li \DRC#polygons: converts edge pairs to polygons @/li
# @li \DRC#extended, \DRC#extended_in, \DRC#extended_out: converts edges to polygons @/li
# @li \DRC#first_edges, \DRC#second_edges: extracts edges from edge pairs @/li
# @li \DRC#edges: decomposes edge pairs and polygons into edges @/li
# @li \DRC#corners: can extract corners from polygons @/li
# @li "\DRC#polygons": converts edge pairs to polygons @/li
# @li "\DRC#extended", "\DRC#extended_in", "\DRC#extended_out": converts edges to polygons @/li
# @li "\DRC#first_edges", \DRC#second_edges": extracts edges from edge pairs @/li
# @li "\DRC#edges": decomposes edge pairs and polygons into edges @/li
# @li "\DRC#corners": can extract corners from polygons @/li
# @/ul
#
# The following example decomposes the primary polygons into edges:
@ -174,8 +174,8 @@ module DRC
#
# @ul
# @li Edge vs. edge and edge vs. polygon booleans @/li
# @li Edge vs. polygon interactions (\DRC#interacting, \DRC#overlapping) @/li
# @li Edge sampling (\DRC#start_segments, \DRC#centers, \DRC#end_segments) @/li
# @li Edge vs. polygon interactions ("\DRC#interacting", "\DRC#overlapping") @/li
# @li Edge sampling ("\DRC#start_segments", "\DRC#centers", "\DRC#end_segments") @/li
# @/ul
#
# @h3 Filters @/h3
@ -384,7 +384,7 @@ module DRC
# writing DRC expressions, are more efficient and open new opportunities. DRC
# development is likely to focus on this scheme in the future.
#
# More formal details about the bits and pieces can be found in the \DRC# class documentation.
# More formal details about the bits and pieces can be found in the "\DRC" class documentation.
def drc(op)
@engine._context("drc") do
@ -901,77 +901,55 @@ CODE
# %DRC%
# @name covering
# @brief Selects shapes entirely covering other shapes
# @synopsis covering(other) (in conditions)
# @synopsis covering(other) (optionally in condition)
#
# This method represents the selector of primary shapes
# This operator represents the selector of primary shapes
# which entirely cover shapes from the other layer. This version can be put into
# a condition indicating how many shapes of the other layer need to be covered.
# Use this variant within \DRC# expressions (also see \Layer#drc).
#
# For example, the following statement selects all input shapes which entirely
# cover shapes from the "other" layer:
#
# @code
# out = in.drc(covering(other))
# @/code
#
# This example selects all input shapes which entire cover shapes from
# the other layer and there are more than two shapes from "other" inside
# primary shapes:
#
# @code
# out = in.drc(covering(other) > 2)
# @/code
# Use this operator within \DRC# expressions (also see \Layer#drc). If can be used
# as method to an expression. See there for more details: \DRC#covering.
# %DRC%
# @name interacting
# @brief Selects shapes interacting with other shapes
# @synopsis interacting(other) (in conditions)
# @synopsis interacting(other) (optionally in condition)
#
# See \covering for a description of the use cases for this function.
# When using "interacting", shapes are selected when the interact (overlap, touch)
# shapes from the other layer.
#
# When using this method with a count, the operation may not render
# the correct results if the other input is not merged. By nature of the
# generic DRC feature, only those shapes that interact with the primary shape
# will be selected. If the other input is split into multiple polygons,
# not all components may be captured and the computed interaction count
# may be incorrect.
# This operator represents the selector of primary shapes
# which interact with shapes from the other layer. This version can be put into
# a condition indicating how many shapes of the other layer need to be covered.
# Use this operator within \DRC# expressions (also see \Layer#drc). If can be used
# as method to an expression. See there for more details: \DRC#interacting.
# %DRC%
# @name overlapping
# @brief Selects shapes overlapping with other shapes
# @synopsis overlapping(other) (in conditions)
# @synopsis overlapping(other) (optionally in condition)
#
# See \covering for a description of the use cases for this function.
# When using "overlapping", shapes are selected when the overlap
# shapes from the other layer.
#
# When using this method with a count, the operation may not render
# the correct results if the other input is not merged. By nature of the
# generic DRC feature, only those shapes that interact with the primary shape
# will be selected. If the other input is split into multiple polygons,
# not all components may be captured and the computed interaction count
# may be incorrect.
# This operator represents the selector of primary shapes
# which overlap shapes from the other layer. This version can be put into
# a condition indicating how many shapes of the other layer need to be covered.
# Use this operator within \DRC# expressions (also see \Layer#drc). If can be used
# as method to an expression. See there for more details: \DRC#overlapping.
# %DRC%
# @name inside
# @brief Selects shapes entirely inside other shapes
# @synopsis inside(other)
#
# This method represents the selector of primary shapes
# which are entirely inside shapes from the other layer.
# Use this variant within \DRC# expressions (also see \Layer#drc).
# This operator represents the selector of primary shapes
# which are inside shapes from the other layer.
# Use this operator within \DRC# expressions (also see \Layer#drc). If can be used
# as method to an expression. See there for more details: \DRC#inside.
# %DRC%
# @name outside
# @brief Selects shapes entirely outside other shapes
# @synopsis outside(other)
#
# This method represents the selector of primary shapes
# which are entirely outside shapes from the other layer.
# Use this variant within \DRC# expressions (also see \Layer#drc).
# This operator represents the selector of primary shapes
# which are outside shapes from the other layer.
# Use this operator within \DRC# expressions (also see \Layer#drc). If can be used
# as method to an expression. See there for more details: \DRC#outside.
%w(
covering

View File

@ -420,6 +420,34 @@ out = in.drc(if_any(corners.count == 3))
Note "if_any" which selects the primary shape if the argument evaluates to a non-empty
result. Without "if_any" three corners are returned for each triangle.
</p>
<a name="covering"/><h2>"covering" - Selects shapes entirely covering other shapes</h2>
<keyword name="covering"/>
<p>Usage:</p>
<ul>
<li><tt>expression.covering(other) (optionally in conditions)</tt></li>
<li><tt>covering(other) (optionally in conditions)</tt></li>
</ul>
<p>
This method represents the selector of primary shapes
which entirely cover shapes from the other layer. This version can be put into
a condition indicating how many shapes of the other layer need to be covered.
Use this variant within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>).
</p><p>
For example, the following statement selects all input shapes which entirely
cover shapes from the "other" layer:
</p><p>
<pre>
out = in.drc(covering(other))
</pre>
</p><p>
This example selects all input shapes which entire cover shapes from
the other layer and there are more than two shapes from "other" inside
primary shapes:
</p><p>
<pre>
out = in.drc(covering(other) &gt; 2)
</pre>
</p>
<a name="edges"/><h2>"edges" - Converts the input shapes into edges</h2>
<keyword name="edges"/>
<p>Usage:</p>
@ -521,7 +549,7 @@ The plain function is equivalent to "primary.extents".
<keyword name="first_edges"/>
<p>Usage:</p>
<ul>
<li><tt>expression.extents([ enlargement ])</tt></li>
<li><tt>expression.first_edges</tt></li>
</ul>
<p>
This method acts on edge pair expressions and returns the first edges of the
@ -562,6 +590,37 @@ out = in.drc(hulls)
out = in.drc(primary.hulls) # equivalent
</pre>
</p>
<a name="inside"/><h2>"inside" - Selects shapes entirely inside other shapes</h2>
<keyword name="inside"/>
<p>Usage:</p>
<ul>
<li><tt>expression.inside(other)</tt></li>
<li><tt>inside(other)</tt></li>
</ul>
<p>
This method represents the selector of primary shapes
which are entirely inside shapes from the other layer.
Use this variant within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>).
</p>
<a name="interacting"/><h2>"interacting" - Selects shapes interacting with other shapes</h2>
<keyword name="interacting"/>
<p>Usage:</p>
<ul>
<li><tt>expression.interacting(other) (optionally in conditions)</tt></li>
<li><tt>interacting(other) (optionally in conditions)</tt></li>
</ul>
<p>
See <a href="#covering">covering</a> for a description of the use cases for this function.
When using "interacting", shapes are selected when the interact (overlap, touch)
shapes from the other layer.
</p><p>
When using this method with a count, the operation may not render
the correct results if the other input is not merged. By nature of the
generic DRC feature, only those shapes that interact with the primary shape
will be selected. If the other input is split into multiple polygons,
not all components may be captured and the computed interaction count
may be incorrect.
</p>
<a name="length"/><h2>"length" - Selects edges based on their length</h2>
<keyword name="length"/>
<p>Usage:</p>
@ -639,6 +698,37 @@ wrap count rule in place.
This operation can be used as a plain function in which case it acts on primary
shapes or can be used as method on another DRC expression.
</p>
<a name="outside"/><h2>"outside" - Selects shapes entirely outside other shapes</h2>
<keyword name="outside"/>
<p>Usage:</p>
<ul>
<li><tt>expression.outside(other)</tt></li>
<li><tt>outside(other)</tt></li>
</ul>
<p>
This method represents the selector of primary shapes
which are entirely outside shapes from the other layer.
Use this variant within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>).
</p>
<a name="overlapping"/><h2>"overlapping" - Selects shapes overlapping with other shapes</h2>
<keyword name="overlapping"/>
<p>Usage:</p>
<ul>
<li><tt>expression.overlapping(other) (optionally in conditions)</tt></li>
<li><tt>overlapping(other) (optionally in conditions)</tt></li>
</ul>
<p>
See <a href="#covering">covering</a> for a description of the use cases for this function.
When using "overlapping", shapes are selected when the overlap
shapes from the other layer.
</p><p>
When using this method with a count, the operation may not render
the correct results if the other input is not merged. By nature of the
generic DRC feature, only those shapes that interact with the primary shape
will be selected. If the other input is split into multiple polygons,
not all components may be captured and the computed interaction count
may be incorrect.
</p>
<a name="perimeter"/><h2>"perimeter" - Selects the input polygon if the perimeter is meeting the condition</h2>
<keyword name="perimeter"/>
<p>Usage:</p>
@ -780,7 +870,7 @@ The plain function is equivalent to "primary.rounded_corners".
<keyword name="second_edges"/>
<p>Usage:</p>
<ul>
<li><tt>expression.extents([ enlargement ])</tt></li>
<li><tt>expression.second_edges</tt></li>
</ul>
<p>
This method acts on edge pair expressions and returns the second edges of the

View File

@ -355,28 +355,14 @@ applied to coners meeting a particular angle constraint.
<keyword name="covering"/>
<p>Usage:</p>
<ul>
<li><tt>covering(other) (in conditions)</tt></li>
<li><tt>covering(other) (optionally in condition)</tt></li>
</ul>
<p>
This method represents the selector of primary shapes
This operator represents the selector of primary shapes
which entirely cover shapes from the other layer. This version can be put into
a condition indicating how many shapes of the other layer need to be covered.
Use this variant within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>).
</p><p>
For example, the following statement selects all input shapes which entirely
cover shapes from the "other" layer:
</p><p>
<pre>
out = in.drc(covering(other))
</pre>
</p><p>
This example selects all input shapes which entire cover shapes from
the other layer and there are more than two shapes from "other" inside
primary shapes:
</p><p>
<pre>
out = in.drc(covering(other) &gt; 2)
</pre>
Use this operator within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>). If can be used
as method to an expression. See there for more details: <a href="/about/drc_ref_drc.xml#covering">DRC#covering</a>.
</p>
<a name="dbu"/><h2>"dbu" - Gets or sets the database unit to use</h2>
<keyword name="dbu"/>
@ -750,27 +736,23 @@ this method.
<li><tt>inside(other)</tt></li>
</ul>
<p>
This method represents the selector of primary shapes
which are entirely inside shapes from the other layer.
Use this variant within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>).
This operator represents the selector of primary shapes
which are inside shapes from the other layer.
Use this operator within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>). If can be used
as method to an expression. See there for more details: <a href="/about/drc_ref_drc.xml#inside">DRC#inside</a>.
</p>
<a name="interacting"/><h2>"interacting" - Selects shapes interacting with other shapes</h2>
<keyword name="interacting"/>
<p>Usage:</p>
<ul>
<li><tt>interacting(other) (in conditions)</tt></li>
<li><tt>interacting(other) (optionally in condition)</tt></li>
</ul>
<p>
See <a href="#covering">covering</a> for a description of the use cases for this function.
When using "interacting", shapes are selected when the interact (overlap, touch)
shapes from the other layer.
</p><p>
When using this method with a count, the operation may not render
the correct results if the other input is not merged. By nature of the
generic DRC feature, only those shapes that interact with the primary shape
will be selected. If the other input is split into multiple polygons,
not all components may be captured and the computed interaction count
may be incorrect.
This operator represents the selector of primary shapes
which interact with shapes from the other layer. This version can be put into
a condition indicating how many shapes of the other layer need to be covered.
Use this operator within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>). If can be used
as method to an expression. See there for more details: <a href="/about/drc_ref_drc.xml#interacting">DRC#interacting</a>.
</p>
<a name="is_deep?"/><h2>"is_deep?" - Returns true, if in deep mode</h2>
<keyword name="is_deep?"/>
@ -1059,9 +1041,10 @@ layout if is report database.
<li><tt>outside(other)</tt></li>
</ul>
<p>
This method represents the selector of primary shapes
which are entirely outside shapes from the other layer.
Use this variant within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>).
This operator represents the selector of primary shapes
which are outside shapes from the other layer.
Use this operator within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>). If can be used
as method to an expression. See there for more details: <a href="/about/drc_ref_drc.xml#outside">DRC#outside</a>.
</p>
<a name="overlap"/><h2>"overlap" - Performs an overlap check</h2>
<keyword name="overlap"/>
@ -1078,19 +1061,14 @@ function provides a two-layer check. See there for details how to use this funct
<keyword name="overlapping"/>
<p>Usage:</p>
<ul>
<li><tt>overlapping(other) (in conditions)</tt></li>
<li><tt>overlapping(other) (optionally in condition)</tt></li>
</ul>
<p>
See <a href="#covering">covering</a> for a description of the use cases for this function.
When using "overlapping", shapes are selected when the overlap
shapes from the other layer.
</p><p>
When using this method with a count, the operation may not render
the correct results if the other input is not merged. By nature of the
generic DRC feature, only those shapes that interact with the primary shape
will be selected. If the other input is split into multiple polygons,
not all components may be captured and the computed interaction count
may be incorrect.
This operator represents the selector of primary shapes
which overlap shapes from the other layer. This version can be put into
a condition indicating how many shapes of the other layer need to be covered.
Use this operator within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>). If can be used
as method to an expression. See there for more details: <a href="/about/drc_ref_drc.xml#overlapping">DRC#overlapping</a>.
</p>
<a name="p"/><h2>"p" - Creates a point object</h2>
<keyword name="p"/>

View File

@ -327,7 +327,7 @@ of the layer's data.
<li><tt>layer.drc(expression)</tt></li>
</ul>
<p>
This method implement the universal DRC which offers enhanced abilities,
This method implements the universal DRC which offers enhanced abilities,
improved performance in some applications and better readability.
</p><p>
The key concept for this method are DRC expressions. DRC expressions
@ -370,7 +370,7 @@ using measurement operations like "area" on secondary polygons.
<h3>Checks </h3>
</p><p>
Here is an example for a generic DRC operation which performs a width
check for less than 0.5.um on the primary shapes. It uses the <a href="/about/drc_ref_global.xml#width">width</a> operator:
check for less than 0.5.um on the primary shapes. It uses the "<a href="/about/drc_ref_global.xml#width">width</a>" operator:
</p><p>
<pre>
out = in.drc(width &lt; 0.5.um)
@ -386,8 +386,8 @@ out = in.drc(width != 0.5.um)
out = in.drc(0.2.um &lt; width &lt; 0.5.um)
</pre>
</p><p>
To specify the second input for a two-layer check, specify it in brackets in
the check function. This example shows how to use a two-layer separation check (<a href="/about/drc_ref_global.xml#separation">separation</a>):
To specify the second input for a two-layer check, add it to
the check function. This example shows how to use a two-layer separation check ("<a href="/about/drc_ref_global.xml#separation">separation</a>"):
</p><p>
<pre>
l1 = input(1, 0)
@ -397,11 +397,11 @@ out = l1.drc(separation(l2) &lt; 0.5.um)
</p><p>
The second input of this check function can be a computed expression. In this
case the local loop will first evaluate the expression for the second input and
then use the result for second input in the check. Note that this computation is
then use the result as second input in the check. Note that this computation is
performed locally and separately for each primary and its context.
</p><p>
Options for the checks are also specified inside the brackets. For example,
to specify projection metrics ("projection") for width use:
to select projection metrics ("projection") for the "width" check use:
</p><p>
<pre>
out = in.drc(width(projection) &lt; 0.5.um)
@ -442,11 +442,11 @@ For the conversion of edges, edge pairs and polygons into other types, these
methods are provided:
</p><p>
<ul>
<li><a href="/about/drc_ref_drc.xml#polygons:">DRC#polygons:</a> converts edge pairs to polygons </li>
<li><a href="/about/drc_ref_drc.xml#extended">DRC#extended</a>, <a href="/about/drc_ref_drc.xml#extended_in">DRC#extended_in</a>, <a href="/about/drc_ref_drc.xml#extended_out:">DRC#extended_out:</a> converts edges to polygons </li>
<li><a href="/about/drc_ref_drc.xml#first_edges">DRC#first_edges</a>, <a href="/about/drc_ref_drc.xml#second_edges:">DRC#second_edges:</a> extracts edges from edge pairs </li>
<li><a href="/about/drc_ref_drc.xml#edges:">DRC#edges:</a> decomposes edge pairs and polygons into edges </li>
<li><a href="/about/drc_ref_drc.xml#corners:">DRC#corners:</a> can extract corners from polygons </li>
<li>"<a href="/about/drc_ref_drc.xml#polygons">DRC#polygons</a>": converts edge pairs to polygons </li>
<li>"<a href="/about/drc_ref_drc.xml#extended">DRC#extended</a>", "<a href="/about/drc_ref_drc.xml#extended_in">DRC#extended_in</a>", "<a href="/about/drc_ref_drc.xml#extended_out">DRC#extended_out</a>": converts edges to polygons </li>
<li>"<a href="/about/drc_ref_drc.xml#first_edges">DRC#first_edges</a>", <a href="/about/drc_ref_drc.xml#second_edges">DRC#second_edges</a>": extracts edges from edge pairs </li>
<li>"<a href="/about/drc_ref_drc.xml#edges">DRC#edges</a>": decomposes edge pairs and polygons into edges </li>
<li>"<a href="/about/drc_ref_drc.xml#corners">DRC#corners</a>": can extract corners from polygons </li>
</ul>
</p><p>
The following example decomposes the primary polygons into edges:
@ -487,8 +487,8 @@ The "drc" framework supports the following edge and edge/polygon operations:
</p><p>
<ul>
<li>Edge vs. edge and edge vs. polygon booleans </li>
<li>Edge vs. polygon interactions (<a href="/about/drc_ref_drc.xml#interacting">DRC#interacting</a>, <a href="/about/drc_ref_drc.xml#overlapping">DRC#overlapping</a>) </li>
<li>Edge sampling (<a href="/about/drc_ref_drc.xml#start_segments">DRC#start_segments</a>, <a href="/about/drc_ref_drc.xml#centers">DRC#centers</a>, <a href="/about/drc_ref_drc.xml#end_segments">DRC#end_segments</a>) </li>
<li>Edge vs. polygon interactions ("<a href="/about/drc_ref_drc.xml#interacting">DRC#interacting</a>", "<a href="/about/drc_ref_drc.xml#overlapping">DRC#overlapping</a>") </li>
<li>Edge sampling ("<a href="/about/drc_ref_drc.xml#start_segments">DRC#start_segments</a>", "<a href="/about/drc_ref_drc.xml#centers">DRC#centers</a>", "<a href="/about/drc_ref_drc.xml#end_segments">DRC#end_segments</a>") </li>
</ul>
</p><p>
<h3>Filters </h3>
@ -697,7 +697,7 @@ DRC expressions are quite rich and powerful. They provide a more intuitive way o
writing DRC expressions, are more efficient and open new opportunities. DRC
development is likely to focus on this scheme in the future.
</p><p>
More formal details about the bits and pieces can be found in the <a href="/about/drc_ref_drc.xml">DRC</a> class documentation.
More formal details about the bits and pieces can be found in the "<a href="#DRC">DRC</a>" class documentation.
</p>
<a name="dup"/><h2>"dup" - Duplicates a layer</h2>
<keyword name="dup"/>