Pdf documentation (#1052)

* Some doc fixes as preparation for PDF generation

* Some doc bug fixes and enhancements for PDF manual generation

* Fixed a number of invalid references found during PDF generation

* Enable PCellDeclarationHelper doc for help system

* Fixed doc text

* Fixed some doc issues with invalid links etc.
This commit is contained in:
Matthias Köfferlein 2022-04-03 20:51:29 +02:00 committed by GitHub
parent 779c2392e7
commit f8bd4dafaf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 133 additions and 73 deletions

View File

@ -18,6 +18,8 @@ def create_ref(mod, s)
else
"<a href=\"/" + $loc + "/" + mod.downcase + "_ref_" + $1.downcase + ".xml\">#{$1}</a>"
end
elsif s =~ /([A-Z].*)/
"<a href=\"/" + $loc + "/" + mod.downcase + "_ref_" + $1.downcase + ".xml\">#{$1}</a>"
else
"<a href=\"#" + s + "\">#{s}</a>"
end
@ -34,6 +36,8 @@ def create_link(mod, s)
else
"<link href=\"/" + $loc + "/" + mod.downcase + "_ref_" + $1.downcase + ".xml\"/>"
end
elsif s =~ /([A-Z].*)/
"<link href=\"/" + $loc + "/" + mod.downcase + "_ref_" + $1.downcase + ".xml\"/>"
else
"<link href=\"#" + s + "\"/>"
end

View File

@ -90,7 +90,7 @@ Class<db::CellMapping> decl_CellMapping ("db", "CellMapping",
"\n"
"The cell mapping is created for cells from cell_indexes_b to cell from cell_indexes_a in the respective layouts. "
"This method clears the mapping and creates one for each cell pair from cell_indexes_b vs. cell_indexes_a. "
"If used for \\Layout#copy_tree or \\Layout#move_tree, this cell mapping will essentially "
"If used for \\Layout#copy_tree_shapes or \\Layout#move_tree_shapes, this cell mapping will essentially "
"flatten the source cells in the target layout.\n"
"\n"
"This method is equivalent to \\clear, followed by \\map(cell_index_a, cell_index_b) for each cell pair.\n"

View File

@ -1027,7 +1027,7 @@ Class<db::MetaInfo> decl_LayoutMetaInfo ("db", "LayoutMetaInfo",
"Layout readers may generate meta information and some writers will add layout information to "
"the layout object. Some writers will also read meta information to determine certain attributes.\n"
"\n"
"Multiple layout meta information objects can be attached to one layout using \\Layout#add_meta. "
"Multiple layout meta information objects can be attached to one layout using \\Layout#add_meta_info. "
"Meta information is identified by a unique name and carries a string value plus an optional description string. "
"The description string is for information only and is not evaluated by code.\n"
"\n"
@ -1770,7 +1770,7 @@ Class<db::Layout> decl_Layout ("db", "Layout",
"@param cell_mapping The cell mapping object that determines how cells are identified between source and target layout\n"
"\n"
"Provide a \\CellMapping object to specify pairs of cells which are mapped from the source layout to this "
"layout. When constructing such a cell mapping object for example with \\CellMapping#for_multi_cell_full, use self "
"layout. When constructing such a cell mapping object for example with \\CellMapping#for_multi_cells_full, use self "
"as the target layout. During the cell mapping construction, the cell mapper will usually create a suitable target "
"hierarchy already. After having completed the cell mapping, use \\copy_tree_shapes to copy over the shapes from "
"the source to the target layout.\n"
@ -1784,7 +1784,7 @@ Class<db::Layout> decl_Layout ("db", "Layout",
"@param layer_mapping Specifies which layers are copied from the source layout to the target layout\n"
"\n"
"Provide a \\CellMapping object to specify pairs of cells which are mapped from the source layout to this "
"layout. When constructing such a cell mapping object for example with \\CellMapping#for_multi_cell_full, use self "
"layout. When constructing such a cell mapping object for example with \\CellMapping#for_multi_cells_full, use self "
"as the target layout. During the cell mapping construction, the cell mapper will usually create a suitable target "
"hierarchy already. After having completed the cell mapping, use \\copy_tree_shapes to copy over the shapes from "
"the source to the target layout.\n"

View File

@ -2265,7 +2265,10 @@ db::NetlistSpiceWriter *new_spice_writer2 (NetlistSpiceWriterDelegateImpl *deleg
Class<db::NetlistWriter> db_NetlistWriter ("db", "NetlistWriter",
gsi::Methods (),
"@hide\n"
"@brief Base class for netlist writers\n"
"This class is provided as a base class for netlist writers. It is not intended for reimplementation on script level, but used internally as an interface.\n"
"\n"
"This class has been introduced in version 0.26."
);
Class<db::NetlistSpiceWriter> db_NetlistSpiceWriter (db_NetlistWriter, "db", "NetlistSpiceWriter",
@ -2355,7 +2358,10 @@ Class<db::NetlistSpiceWriter> db_NetlistSpiceWriter (db_NetlistWriter, "db", "Ne
Class<db::NetlistReader> db_NetlistReader ("db", "NetlistReader",
gsi::Methods (),
"@hide\n"
"@brief Base class for netlist readers\n"
"This class is provided as a base class for netlist readers. It is not intended for reimplementation on script level, but used internally as an interface.\n"
"\n"
"This class has been introduced in version 0.26."
);
/**

View File

@ -526,7 +526,7 @@ Class<db::RecursiveInstanceIterator> decl_RecursiveInstanceIterator ("db", "Recu
"\\Cell offers three methods to get these iterators: begin_instances_rec, begin_instances_rec_touching and begin_instances_rec_overlapping.\n"
"\\Cell#begin_instances_rec will deliver a standard recursive instance iterator which starts from the given cell and iterates "
"over all child cells. \\Cell#begin_instances_rec_touching creates a RecursiveInstanceIterator which delivers the instances "
"whose bounding boxed touch the given search box. \\Layout#begin_instances_rec_overlapping gives an iterator which delivers all instances whose bounding box "
"whose bounding boxed touch the given search box. \\Cell#begin_instances_rec_overlapping gives an iterator which delivers all instances whose bounding box "
"overlaps the search box.\n"
"\n"
"A RecursiveInstanceIterator object can also be created directly, like this:\n"

View File

@ -498,7 +498,7 @@ CODE
# out = in.drc(primary.bbox_min > 200.nm) # equivalent
# @/code
#
# The "bbox_min" method is available as a plain function or as a method on \DRC## expressions.
# The "bbox_min" method is available as a plain function or as a method on \DRC# expressions.
# The plain function is equivalent to "primary.bbox_min".
def bbox_min
@ -578,7 +578,7 @@ CODE
# out = in.drc(primary.bbox_aspect_ratio > 3) # equivalent
# @/code
#
# The "bbox_aspect_ratio" method is available as a plain function or as a method on \DRC## expressions.
# The "bbox_aspect_ratio" method is available as a plain function or as a method on \DRC# expressions.
# The plain function is equivalent to "primary.bbox_aspect_ratio".
def bbox_aspect_ratio
@ -609,7 +609,7 @@ CODE
# out = in.drc(primary.relative_height > 3) # equivalent
# @/code
#
# The "relative_height" method is available as a plain function or as a method on \DRC## expressions.
# The "relative_height" method is available as a plain function or as a method on \DRC# expressions.
# The plain function is equivalent to "primary.bbox_aspect_ratio".
def relative_height
@ -638,7 +638,7 @@ CODE
# out = in.drc(primary.area_ratio > 3) # equivalent
# @/code
#
# The "area_ratio" method is available as a plain function or as a method on \DRC## expressions.
# The "area_ratio" method is available as a plain function or as a method on \DRC# expressions.
# The plain function is equivalent to "primary.area_ratio".
def area_ratio

View File

@ -324,7 +324,7 @@ module DRC
# whether to use named nets (numbers if false) and whether to add
# information comments such as instance coordinates or pin names.
#
# "writer_delegate" allows using a \NetlistSpiceWriterDelegate object to
# "writer_delegate" allows using a RBA::NetlistSpiceWriterDelegate object to
# control the actual writing.
def write_spice(*args)

View File

@ -25,7 +25,7 @@ module DRC
#
# Objects that can be inserted are RBA::Edge objects (into edge layers) or
# RBA::DPolygon, RBA::DSimplePolygon, RBA::Path, RBA::DBox (into polygon layers).
# Convenience methods exist to create such objects (\global#edge, \global#polygon, \global#box and \#global#path).
# Convenience methods exist to create such objects (\global#edge, \global#polygon, \global#box and \global#path).
# However, RBA constructors can used as well.
#
# The insert method is useful in combination with the \global#polygon_layer or \global#edge_layer functions:

View File

@ -192,7 +192,7 @@ module DRC
# @/code
#
# The return value of this method will be the device class of the devices
# generated in the extraction step (see \DeviceClass).
# generated in the extraction step (see RBA::DeviceClass).
def extract_devices(devex, layer_selection)

View File

@ -553,7 +553,7 @@ static std::vector<bool> get_mask_data (ImageRef *obj)
}
// NOTE: img::Object is available as "BasicImage" to allow binding for other methods.
gsi::Class<img::Object> decl_BasicImage ("lay", "BasicImage", gsi::Methods (), "@hide");
gsi::Class<img::Object> decl_BasicImage ("lay", "BasicImage", gsi::Methods (), "@hide\n@alias Image");
gsi::Class<ImageRef> decl_Image (decl_BasicImage, "lay", "Image",
gsi::constructor ("from_s", &gsi::img_from_s, gsi::arg ("s"),

View File

@ -234,7 +234,7 @@ out = in.drc(area_ratio &gt; 3)
out = in.drc(primary.area_ratio &gt; 3) # equivalent
</pre>
</p><p>
The "area_ratio" method is available as a plain function or as a method on <a href="/about/drc_ref_drc#.xml">DRC#</a> expressions.
The "area_ratio" method is available as a plain function or as a method on <a href="/about/drc_ref_drc.xml">DRC</a> expressions.
The plain function is equivalent to "primary.area_ratio".
</p>
<a name="area_sum"/><h2>"area_sum" - Selects the input polygons if the sum of all areas meets the condition</h2>
@ -275,7 +275,7 @@ out = in.drc(bbox_aspect_ratio &gt; 3)
out = in.drc(primary.bbox_aspect_ratio &gt; 3) # equivalent
</pre>
</p><p>
The "bbox_aspect_ratio" method is available as a plain function or as a method on <a href="/about/drc_ref_drc#.xml">DRC#</a> expressions.
The "bbox_aspect_ratio" method is available as a plain function or as a method on <a href="/about/drc_ref_drc.xml">DRC</a> expressions.
The plain function is equivalent to "primary.bbox_aspect_ratio".
</p>
<a name="bbox_height"/><h2>"bbox_height" - Selects the input polygon if its bounding box height is meeting the condition</h2>
@ -328,7 +328,7 @@ out = in.drc(bbox_min &gt; 200.nm)
out = in.drc(primary.bbox_min &gt; 200.nm) # equivalent
</pre>
</p><p>
The "bbox_min" method is available as a plain function or as a method on <a href="/about/drc_ref_drc#.xml">DRC#</a> expressions.
The "bbox_min" method is available as a plain function or as a method on <a href="/about/drc_ref_drc.xml">DRC</a> expressions.
The plain function is equivalent to "primary.bbox_min".
</p>
<a name="bbox_width"/><h2>"bbox_width" - Selects the input polygon if its bounding box width is meeting the condition</h2>
@ -839,7 +839,7 @@ out = in.drc(relative_height &gt; 3)
out = in.drc(primary.relative_height &gt; 3) # equivalent
</pre>
</p><p>
The "relative_height" method is available as a plain function or as a method on <a href="/about/drc_ref_drc#.xml">DRC#</a> expressions.
The "relative_height" method is available as a plain function or as a method on <a href="/about/drc_ref_drc.xml">DRC</a> expressions.
The plain function is equivalent to "primary.bbox_aspect_ratio".
</p>
<a name="rounded_corners"/><h2>"rounded_corners" - Applies corner rounding</h2>

View File

@ -974,7 +974,7 @@ See <a href="#enclosing">enclosing</a> for more details about the various ways t
</tr>
</table>
</p>
<a name="l2n_data"/><h2>"l2n_data" - Gets the internal <class_doc href="LayoutToNetlist">LayoutToNetlist</class_doc> object for the default <a href="#Netter">Netter</a></h2>
<a name="l2n_data"/><h2>"l2n_data" - Gets the internal <class_doc href="LayoutToNetlist">LayoutToNetlist</class_doc> object for the default <a href="/about/drc_ref_netter.xml">Netter</a></h2>
<keyword name="l2n_data"/>
<p>Usage:</p>
<ul>
@ -1036,7 +1036,7 @@ l2 = layout("second_layout.gds")
(input(1, 0) ^ l2.input(1, 0)).output(100, 0)
</pre>
</p><p>
For further methods on the source object see <a href="#Source">Source</a>.
For further methods on the source object see <a href="/about/drc_ref_source.xml">Source</a>.
</p>
<a name="length (in condition)"/><h2>"length (in condition)" - Computes the total edge length of an edge layer or in universal DRC context: selects edges based on a length condition</h2>
<keyword name="length (in condition)"/>
@ -1166,7 +1166,7 @@ four-terminal MOS transistor.
See <class_doc href="DeviceExtractorMOS4Transistor">DeviceExtractorMOS4Transistor</class_doc> for more details
about this extractor (non-strict mode applies for 'mos4').
</p>
<a name="netlist"/><h2>"netlist" - Obtains the extracted netlist from the default <a href="#Netter">Netter</a></h2>
<a name="netlist"/><h2>"netlist" - Obtains the extracted netlist from the default <a href="/about/drc_ref_netter.xml">Netter</a></h2>
<keyword name="netlist"/>
<p>
The netlist is a <class_doc href="Netlist">Netlist</class_doc> object. If no netlist is extracted
@ -1286,7 +1286,7 @@ rectangle error filtering.
<h3>Classic mode </h3>
</p><p>
Like other checks, this function is available as a classic DRC function with a layer as the first
argument and as an <a href="#DRC">DRC</a> expression operator for use with <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>.
argument and as an <a href="/about/drc_ref_drc.xml">DRC</a> expression operator for use with <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>.
</p><p>
<pre>
# classic "overlap" check for &lt; 0.2 um
@ -1439,6 +1439,46 @@ is equivalent to "layer.rectilinear" (see <a href="/about/drc_ref_layer.xml#rect
argument, "rectilinear" represents the rectilinear polygons filter for primary shapes in
<a href="/about/drc_ref_drc.xml">DRC</a> expressions (see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a> and <a href="/about/drc_ref_drc.xml#rectilinear">DRC#rectilinear</a> for more details).
</p>
<a name="region_overlap"/><h2>"region_overlap" - Specifies region selected input in "overlap mode"</h2>
<keyword name="region_overlap"/>
<p>Usage:</p>
<ul>
<li><tt>region_overlap(args)</tt></li>
</ul>
<p>
See <a href="/about/drc_ref_source.xml#overlapping">Source#overlapping</a> for a description of that function.
</p><p>
The following code will select shapes overlapping a 500x600 micron rectangle (lower left corner at 0,0)
from the input layout. The shapes will not be clipped:
</p><p>
<pre>
region_overlapping(0.mm, 0.mm, 0.5.mm, 0.6.mm)
# shapes will now be the ones overlapping the rectangular region
l1 = input(1, 0)
</pre>
</p><p>
To remove this condition, call "region_overlapping" without any arguments.
</p>
<a name="region_touch"/><h2>"region_touch" - Specifies region selected input in "touch mode"</h2>
<keyword name="region_touch"/>
<p>Usage:</p>
<ul>
<li><tt>region_touch(args)</tt></li>
</ul>
<p>
See <a href="/about/drc_ref_source.xml#touching">Source#touching</a> for a description of that function.
</p><p>
The following code will select shapes touching a 500x600 micron rectangle (lower left corner at 0,0)
from the input layout. The shapes will not be clipped:
</p><p>
<pre>
region_touch(0.mm, 0.mm, 0.5.mm, 0.6.mm)
# shapes will now be the ones touching the rectangular region
l1 = input(1, 0)
</pre>
</p><p>
To remove this condition, call "region_touch" without any arguments.
</p>
<a name="relative_height"/><h2>"relative_height" - Selects primary shapes based on the ratio of height and width of their bounding boxes</h2>
<keyword name="relative_height"/>
<p>Usage:</p>
@ -1586,7 +1626,7 @@ rectangle error filtering.
<h3>Classic mode </h3>
</p><p>
Like <a href="#enclosing">enclosing</a>, this function is available as a classic DRC function with a layer as the first
argument and as an <a href="#DRC">DRC</a> expression operator for use with <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>.
argument and as an <a href="/about/drc_ref_drc.xml">DRC</a> expression operator for use with <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>.
</p><p>
<pre>
# classic "separation" check for distance &lt; 0.2 um
@ -1705,7 +1745,7 @@ l2 = layout("second_layout.gds")
(input(1, 0) ^ l2.input(1, 0)).output(100, 0)
</pre>
</p><p>
For further methods on the source object see <a href="#Source">Source</a>.
For further methods on the source object see <a href="/about/drc_ref_source.xml">Source</a>.
</p>
<a name="space"/><h2>"space" - Performs a space check</h2>
<keyword name="space"/>
@ -2024,7 +2064,7 @@ specify SPICE format.
whether to use named nets (numbers if false) and whether to add
information comments such as instance coordinates or pin names.
</p><p>
"writer_delegate" allows using a <a href="#NetlistSpiceWriterDelegate">NetlistSpiceWriterDelegate</a> object to
"writer_delegate" allows using a <class_doc href="NetlistSpiceWriterDelegate">NetlistSpiceWriterDelegate</class_doc> object to
control the actual writing.
</p>
</doc>

View File

@ -714,7 +714,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="#DRC">DRC</a>" class documentation.
More formal details about the bits and pieces can be found in the "<a href="/about/drc_ref_drc.xml">DRC</a>" class documentation.
</p>
<a name="dup"/><h2>"dup" - Duplicates a layer</h2>
<keyword name="dup"/>
@ -786,7 +786,7 @@ See <a href="#enclosing">enclosing</a> for a description of that method
</ul>
<p>
<b>Note: </b>"enclosed" is available as operators for the "universal DRC" function <a href="#drc">drc</a> within
the <a href="#DRC">DRC</a> framework. These variants have more options and are more intuitive to use.
the <a href="/about/drc_ref_drc.xml">DRC</a> framework. These variants have more options and are more intuitive to use.
See <a href="/about/drc_ref_global.xml#enclosed">enclosed</a> for more details.
</p><p>
This method checks whether layer is enclosed by (is inside of) other_layer by not less than the
@ -824,7 +824,7 @@ The following images show the effect of two enclosed checks (red: input1, blue:
</ul>
<p>
<b>Note: </b>"enclosing" and "enc" are available as operators for the "universal DRC" function <a href="#drc">drc</a> within
the <a href="#DRC">DRC</a> framework. These variants have more options and are more intuitive to use.
the <a href="/about/drc_ref_drc.xml">DRC</a> framework. These variants have more options and are more intuitive to use.
See <a href="/about/drc_ref_global.xml#enclosing">enclosing</a> for more details.
</p><p>
This method checks whether layer encloses (is bigger than) other_layer by not less than the
@ -1330,7 +1330,7 @@ The following image shows the effect of the "in" method (input1: red, input2: bl
<p>
Objects that can be inserted are <class_doc href="Edge">Edge</class_doc> objects (into edge layers) or
<class_doc href="DPolygon">DPolygon</class_doc>, <class_doc href="DSimplePolygon">DSimplePolygon</class_doc>, <class_doc href="Path">Path</class_doc>, <class_doc href="DBox">DBox</class_doc> (into polygon layers).
Convenience methods exist to create such objects (<a href="/about/drc_ref_global.xml#edge">edge</a>, <a href="/about/drc_ref_global.xml#polygon">polygon</a>, <a href="/about/drc_ref_global.xml#box">box</a> and <a href="/about/drc_ref_#global.xml#path">#global#path</a>).
Convenience methods exist to create such objects (<a href="/about/drc_ref_global.xml#edge">edge</a>, <a href="/about/drc_ref_global.xml#polygon">polygon</a>, <a href="/about/drc_ref_global.xml#box">box</a> and <a href="/about/drc_ref_global.xml#path">path</a>).
However, RBA constructors can used as well.
</p><p>
The insert method is useful in combination with the <a href="/about/drc_ref_global.xml#polygon_layer">polygon_layer</a> or <a href="/about/drc_ref_global.xml#edge_layer">edge_layer</a> functions:
@ -1516,7 +1516,7 @@ See <a href="#isolated">isolated</a> for a description of that method
</ul>
<p>
<b>Note: </b>"isolated" and "iso" are available as operators for the "universal DRC" function <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a> within
the <a href="#DRC">DRC</a> framework. These variants have more options and are more intuitive to use. See <a href="/about/drc_ref_global.xml#isolated">isolated</a> for more details.
the <a href="/about/drc_ref_drc.xml">DRC</a> framework. These variants have more options and are more intuitive to use. See <a href="/about/drc_ref_global.xml#isolated">isolated</a> for more details.
</p><p>
See <a href="#space">space</a> for a description of this method. "isolated" is the space check variant which checks different polygons only.
In contrast to <a href="#space">space</a>, the "isolated"
@ -1922,7 +1922,7 @@ is <a href="#select_not_overlapping">select_not_overlapping</a>.
</ul>
<p>
<b>Note: </b>"notch" is available as an operator for the "universal DRC" function <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a> within
the <a href="#DRC">DRC</a> framework. This variant has more options and is more intuitive to use. See <a href="/about/drc_ref_global.xml#notch">notch</a> for more details.
the <a href="/about/drc_ref_drc.xml">DRC</a> framework. This variant has more options and is more intuitive to use. See <a href="/about/drc_ref_global.xml#notch">notch</a> for more details.
</p><p>
See <a href="#space">space</a> for a description of this method.
"notch" is the space check variant which finds space violations within a single polygon, but not against other polygons.
@ -2061,7 +2061,7 @@ This method is available for edge layers. The argument must be a polygon layer.
</ul>
<p>
<b>Note: </b>"overlap" is available as an operator for the "universal DRC" function <a href="#drc">drc</a> within
the <a href="#DRC">DRC</a> framework. This variant has more options and is more intuitive to use.
the <a href="/about/drc_ref_drc.xml">DRC</a> framework. This variant has more options and is more intuitive to use.
See <a href="/about/drc_ref_global.xml#overlap">overlap</a> for more details.
</p><p>
This method checks whether layer and other_layer overlap by at least the
@ -2591,7 +2591,7 @@ See <a href="#separation">separation</a> for a description of that method
</ul>
<p>
<b>Note: </b>"separation" and "sep" are available as operators for the "universal DRC" function <a href="#drc">drc</a> within
the <a href="#DRC">DRC</a> framework. These variants have more options and are more intuitive to use.
the <a href="/about/drc_ref_drc.xml">DRC</a> framework. These variants have more options and are more intuitive to use.
See <a href="/about/drc_ref_global.xml#separation">separation</a> for more details.
</p><p>
This method performs a two-layer spacing check. Like <a href="#space">space</a>, this method
@ -2810,7 +2810,7 @@ not modify the layer but returns a snapped copy.
</ul>
<p>
<b>Note: </b>"space" is available as an operator for the "universal DRC" function <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a> within
the <a href="#DRC">DRC</a> framework. This variant has more options and is more intuitive to use. See <a href="/about/drc_ref_global.xml#space">space</a> for more details.
the <a href="/about/drc_ref_drc.xml">DRC</a> framework. This variant has more options and is more intuitive to use. See <a href="/about/drc_ref_global.xml#space">space</a> for more details.
</p><p>
This method performs a space check and returns a collection of edge pairs.
A space check can be performed on polygon and edge layers. On edge layers, all
@ -3092,7 +3092,7 @@ The following image shows the effect of the "moved" method:
</ul>
<p>
<b>Note: </b>"width" is available as an operator for the "universal DRC" function <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a> within
the <a href="#DRC">DRC</a> framework. This variant has more options and is more intuitive to use. See <a href="/about/drc_ref_global.xml#width">width</a> for more details.
the <a href="/about/drc_ref_drc.xml">DRC</a> framework. This variant has more options and is more intuitive to use. See <a href="/about/drc_ref_global.xml#width">width</a> for more details.
</p><p>
This method performs a width check and returns a collection of edge pairs.
A width check can be performed on polygon and edge layers. On edge layers, all

View File

@ -388,7 +388,7 @@ extract_devices(mos4("NMOS4"), { :SD =&gt; nsd, :G =&gt; gate, :P =&gt; poly, :W
</pre>
</p><p>
The return value of this method will be the device class of the devices
generated in the extraction step (see <a href="#DeviceClass">DeviceClass</a>).
generated in the extraction step (see <class_doc href="DeviceClass">DeviceClass</class_doc>).
</p>
<a name="l2n_data"/><h2>"l2n_data" - Gets the internal <class_doc href="LayoutToNetlist">LayoutToNetlist</class_doc> object</h2>
<keyword name="l2n_data"/>

View File

@ -63,7 +63,7 @@
<p>
LEF and DEF import can be configured in many ways. The configuration of the LEF/DEF import
feature is attached to a technology, so there can be individual configurations per technology.
For a description of the technology feature, see <link href="about/technology_manager.xml"/>.
For a description of the technology feature, see <link href="/about/technology_manager.xml"/>.
The import feature uses the current technology. The current technology can be selected from
the main toolbar's technology selector if specific technology settings exist. Otherwise, the
default technology will be used.
@ -138,14 +138,14 @@
<li><b>Produce net names:</b> Check this option to assign user properties with the
net name to the net shapes in DEF files. The user property name used for that
purpose can be specified in the edit box below the check box. Use KLayout's
variant notation (see <link href="about/variant_notation.xml"/>) to specify
variant notation (see <link href="/about/variant_notation.xml"/>) to specify
value and type of the property name.
</li>
<li><b>Produce inst names:</b> Check this option to assign user properties with the
instance name to the component instances created by DEF import.
The user property name used for the instance name
can be specified in the edit box below the check box. Use KLayout's
variant notation (see <link href="about/variant_notation.xml"/>) to specify
variant notation (see <link href="/about/variant_notation.xml"/>) to specify
value and type of the property name.
</li>
<li><b>Produce cell outlines:</b> If this option is checked, outline shapes are

View File

@ -100,7 +100,7 @@ See <a href="/about/lvs_ref_netter.xml#ignore_parameter">Netter#ignore_parameter
<p>
See <a href="/about/lvs_ref_netter.xml#join_symmetric_nets">Netter#join_symmetric_nets</a> for a description of that function.
</p>
<a name="lvs_data"/><h2>"lvs_data" - Gets the <a href="#LayoutVsSchematic">LayoutVsSchematic</a> object after compare was used</h2>
<a name="lvs_data"/><h2>"lvs_data" - Gets the <class_doc href="LayoutVsSchematic">LayoutVsSchematic</class_doc> object after compare was used</h2>
<keyword name="lvs_data"/>
<p>Usage:</p>
<ul>

View File

@ -100,7 +100,7 @@
</li>
<li>
Technology folders: each technology folder can carry a "macros" or "pymacros" subfolder where technology-specific
macros are kept. See <link href="/about/technology-manager.xml"/> for details about technologies.
macros are kept. See <link href="/about/technology_manager.xml"/> for details about technologies.
</li>
<li>
Macros can be kept in packages and installed from a remote repository. See <link href="/about/packages.xml"/> for

View File

@ -164,7 +164,7 @@
<h2>MOS transistor with bulk</h2>
<p>
The API class of the three-terminal MOS transistor is <class_doc href="DeviceClassMOS3"/>.
The API class of the three-terminal MOS transistor is <class_doc href="DeviceClassMOS3Transistor"/>.
</p>
<p>
@ -221,7 +221,7 @@
<p>
In SPICE, BJT3 devices are represented by the "Q" element with the
device class name as the model name.
The API class is <class_doc href="DeviceClassBJT3"/>.
The API class is <class_doc href="DeviceClassBJT3Transistor"/>.
</p>
<h2>Bipolar transistor with substrate</h2>
@ -243,7 +243,7 @@
<p>
In SPICE, BJT4 devices are represented by the "Q" element with four nodes and the
device class name as the model name.
The API class is <class_doc href="DeviceClassBJT4"/>.
The API class is <class_doc href="DeviceClassBJT4Transistor"/>.
</p>
</doc>

View File

@ -116,8 +116,6 @@
This object provides access to the main menu, the toolbar and various context menus. With this object it
is possible to manipulate the menu.</li>
<li><class_doc href="MainWindow#message"/>: show a message in the status bar.</li>
<li><class_doc href="MainWindow#reader_options"/>: gets the current layout reader options and allows modification of the latter.
The reader options configure the reading of layouts.</li>
<li><class_doc href="MainWindow#save_session"/> and <class_doc href="MainWindow#restore_session"/>: save or restore a session.
Sessions contain a window settings and information about the layouts loaded.
Sessions allows storing and restoring of the state of the main window.</li>
@ -268,7 +266,7 @@ Application::instance.main_window.views</pre>
<li><class_doc href="LayoutView#add_stipple"/>, <class_doc href="LayoutView#clear_stipples"/> and <class_doc href="LayoutView#remove_stipple"/>:
manage custom stipples.
</li>
<li><class_doc href="LayoutView#add_line_style"/>, <class_doc href="LayoutView#clear_line_styles"/> and <class_doc href="LayoutView#remove_line_styles"/>:
<li><class_doc href="LayoutView#add_line_style"/>, <class_doc href="LayoutView#clear_line_styles"/> and <class_doc href="LayoutView#remove_line_style"/>:
manage custom line styles.
</li>
<li><class_doc href="LayoutView#ascend"/> and <class_doc href="LayoutView#descend"/>: moves the context cell up or down in the
@ -369,7 +367,7 @@ Application::instance.main_window.views</pre>
<li><class_doc href="LayoutView#reload_layout"/>:
reloads a given layout.
</li>
<li><class_doc href="LayoutView#create_rdb"/>, <class_doc href="LayoutView#delete_rdb"/>, <class_doc href="LayoutView#rdb"/>
<li><class_doc href="LayoutView#create_rdb"/>, <class_doc href="LayoutView#remove_rdb"/>, <class_doc href="LayoutView#rdb"/>
and <class_doc href="LayoutView#num_rdbs"/>: Create, delete and get report databases stored inside the LayoutView object.
</li>
<li><class_doc href="LayoutView#rename_cellview"/>:
@ -398,7 +396,7 @@ Application::instance.main_window.views</pre>
</p>
<p>
Transactions can be initiated with <link href="LayoutView#transaction"/> and committed with <link href="LayoutView#commit"/>.
Transactions can be initiated with <class_doc href="LayoutView#transaction"/> and committed with <class_doc href="LayoutView#commit"/>.
To ensure, every initiation of a transaction is matched by a "commit", it is recommended to employ "ensure":
</p>

View File

@ -108,7 +108,7 @@ layout.write("my_layout.gds")</pre>
For doing so, the Layout object keeps layers as a table of <class_doc href="LayerInfo"/> objects. The LayerInfo object
carries information about the description of a layer, for example layer and datatype number and/or the layer name.
A layer is basically
just an index in that table. Layers can be created using the <class_doc href="LayerInfo#insert_layer"/> method. Each layer is present
just an index in that table. Layers can be created using the <class_doc href="Layout#insert_layer"/> method. Each layer is present
in every cell and inside a cell, a shape storage for each layer is provided.
</p>
@ -508,10 +508,10 @@ shape.set_property(1, "NewValue")</pre>
</p>
<p>
The <class_doc href="Layout#layer"/> attribute allows read and write access to the layer number. <class_doc href="Layout#datatype"/> is the
attribute for the datatype number. <class_doc href="Layout#name"/> gives access to the text name. <class_doc href="Layout#is_named?"/> returns
The <class_doc href="LayerInfo#layer"/> attribute allows read and write access to the layer number. <class_doc href="LayerInfo#datatype"/> is the
attribute for the datatype number. <class_doc href="LayerInfo#name"/> gives access to the text name. <class_doc href="LayerInfo#is_named?"/> returns
true, if the LayerInfo object represents a named layer (no layer or datatype number are specified).
<class_doc href="Layout#is_equivalent?"/> compares two LayerInfo objects and returns true, if both denote the same
<class_doc href="LayerInfo#is_equivalent?"/> compares two LayerInfo objects and returns true, if both denote the same
layer. This is not exact equivalence but follows the logical precendence: two layers are equivalent
if layer or datatype number match (in that case the text name is ignored) or, if no layer and datatype
number are specified, the name matches exactly.
@ -786,7 +786,7 @@ end</pre>
a PCell. <class_doc href="Cell#pcell_id"/> returns the PCell declaration ID if the cell is a PCell variant. <class_doc href="Cell#pcell_declaration"/> will
return the PCell declaration object. There is also a overload of "pcell_declaration" that determines the PCell declaration
object for an Instance if it is a PCell instance. <class_doc href="Cell#pcell_parameters"/> delivers the PCell parameters for a cell (if it is
a PCell variant) or an instance (if it is a PCell instance). The PCell parameters are an array of <class_doc href="Variant"/> object
a PCell variant) or an instance (if it is a PCell instance). The PCell parameters are an array of variable-type values
and the interpretation is dependent on the PCell implementation. The <class_doc href="PCellDeclaration"/> object
which can be obtained through "pcell_declaration" gives the necessary information about the interpretation of the
parameters.
@ -879,9 +879,9 @@ end</pre>
<keyword name="Instance"/>
<p>
As stated earlier, the <class_doc href="Instance"/> object represents a cell instance
in the database and basically acts as a reference or pointer to a CellInstArray object inside the database.
in the database. Technically it acts as a proxy to some CellInstArray inside the database.
In addition, it provides access to properties attached to the instance. Instance objects play an important
role in the Cell class to identify a certain instance, for example to delete an instance.
role in the Cell class to identify a certain instance, for example to delete it.
</p>
<p>
@ -895,20 +895,25 @@ end</pre>
</p>
<p>
The cell the Instance object lives in can be obtained with <class_doc href="Instance#cell"/>. <class_doc href="Instance#parent_cell_index"/> basically
renders the same information, but in form of a cell index. The layout the instance lives in can be
obtained with <class_doc href="Instance#layout"/>.
The cell the Instance object lives in can be obtained with <class_doc href="Instance#cell"/>. <class_doc href="Instance#cell_index"/> basically
renders the same information, but in form of a cell index. The cell can be assigned (<class_doc href="Instance#cell="/>) which changes is to
refer to a different cell.
</p>
<p>
The layout the instance lives in can be obtained with <class_doc href="Instance#layout"/>. The cell the instance lives in
is returned by <class_doc href="Instance#parent_cell"/>. The parent cell can be assigned (<class_doc href="Instance#parent_cell="/>), which effectively moves the instance to
a different cell.
</p>
<p>
User properties can be accessed through the <class_doc href="Instance#prop_id"/> attribute or, more convenient, through the
<class_doc href="Instance#get_property"/>, <class_doc href="Instance#delete_property"/> or <class_doc href="Instance#set_property"/> methods. Please note that changing the
<class_doc href="Instance#property"/>, <class_doc href="Instance#delete_property"/> or <class_doc href="Instance#set_property"/> methods. Please note that changing the
property ID or the property values may invalidate iterators as well.
</p>
<p>
An instance has an equality operator. That operator returns true, if the Instance objects point to
the same cell instance.
An instance has an equality operator. That operator returns true, if the Instances indentify the same object.
</p>
<h2>The Shapes class</h2>

View File

@ -289,7 +289,7 @@ box = RBA::Box::new(dbox)
<p>
The spine points of a path can be iterated with <class_doc href="Path#each_point"/>. <class_doc href="Path#num_points"/> returns the number of points.
<class_doc href="Path#point"/> returns a specific point and <class_doc href="Path#points="/> allows replacing of the spine with the given array of Point objects.
<class_doc href="Path#points="/> allows replacing of the spine with the given array of Point objects.
<class_doc href="Path#round="/> sets the "round ended" flag. <class_doc href="Path#bbox"/> and <class_doc href="Path#area"/> deliver the bounding box and the area, where the area
is only approximate and is computed from the spine's length including the extensions times the width for efficiency. For
certain acute-angle configurations that value may not be the exact area.
@ -338,7 +338,10 @@ box = RBA::Box::new(dbox)
<p>
<class_doc href="Text#move"/>, <class_doc href="Text#moved"/> and <class_doc href="Text#transformed"/> basically work
like for the other objects.
The class method <class_doc href="Text#from_dtext"/> creates a integer-coordinate type Text object from a floating-point coordinate type DText
</p>
<p>
Passing a DText object to the Text constructor creates an integer-coordinate type Text object from a floating-point coordinate type DText
object (see below). The floating-point coordinates are rounded to the nearest integer coordinates.
</p>
@ -740,8 +743,9 @@ ly.top_cell.shapes(ly.layer(100, 0)).insert(r11 &amp; r21)
</p>
<p>
Edge pairs can be "normalized" using <class_doc href="EdgePair#normalize"/>. Normalization
will bring the edge pairs in a form such that when connecting their start and end
Edge pairs can be "normalized" using <class_doc href="EdgePair#normalized"/>.
This method returns the normalized version of the edge pair.
Normalization will bring the edge pairs in a form such that when connecting their start and end
points a closed loop without intersections is formed. Normalized edge pairs will produce
nicer polygons later on.
</p>

View File

@ -376,7 +376,7 @@ Class<lay::MainWindow> decl_MainWindow (QT_EXTERNAL_BASE (QMainWindow) "lay", "M
method_ext ("commit_config", &config_end,
"@brief Commits the configuration settings\n"
"This method is provided for using MainWindow without an Application object. "
"It's a convience method which is equivalent to 'dispatcher().config_end(...)'. See \\Dispatcher#config_end for details.\n"
"It's a convience method which is equivalent to 'dispatcher().commit_config(...)'. See \\Dispatcher#commit_config for details.\n"
"\n"
"This method has been introduced in version 0.27.\n"
) +

View File

@ -762,6 +762,10 @@ ApplicationBase::init_app ()
// run all early autorun macros
lym::MacroCollection::root ().autorun_early (&already_executed);
// redo gsi::initialize as the macros may have registered new external classes
// through the "doc to external class" mechanism.
gsi::initialize ();
// autorun_early may have added macro categories, so we need to call finish() again
if (mc) {

View File

@ -805,7 +805,6 @@ Class<InputDialog> decl_InputDialog ("lay", "InputDialog",
"@param title The title to display for the dialog\n"
"@param label The label text to display for the dialog\n"
"@param value The initial value for the input field\n"
"@return A \\IntValue object with has_value? set to true, if \"Ok\" was pressed and the value given in it's value attribute\n"
"@return The value entered if \"Ok\" was pressed or nil if \"Cancel\" was pressed\n"
"This method has been introduced in 0.22 and is somewhat easier to use than the get_.. equivalent."
) +

View File

@ -210,7 +210,7 @@ module LVS
# %LVS%
# @name lvs_data
# @brief Gets the \LayoutVsSchematic object after compare was used
# @brief Gets the RBA::LayoutVsSchematic object after compare was used
# @synopsis lvs_data
# See \Netter#lvs_data for a description of that function.

View File

@ -1244,7 +1244,7 @@ Class<rdb::Database> decl_ReportDatabase ("rdb", "ReportDatabase",
"object's dimensions to micron units by scaling by the database unit.\n"
"\n"
"This method will also produce a flat version of the shapes inside the region. "
"\\RdbCategory#scan_region is a similar method which also supports construction of "
"\\RdbCategory#scan_collection is a similar method which also supports construction of "
"hierarchical databases from deep regions.\n"
"\n"
"This method has been introduced in version 0.23.\n"
@ -1262,7 +1262,7 @@ Class<rdb::Database> decl_ReportDatabase ("rdb", "ReportDatabase",
"object's dimensions to micron units by scaling by the database unit.\n"
"\n"
"This method will also produce a flat version of the edges inside the edge collection. "
"\\RdbCategory#scan_edges is a similar method which also supports construction of "
"\\RdbCategory#scan_collection is a similar method which also supports construction of "
"hierarchical databases from deep edge collections.\n"
"\n"
"This method has been introduced in version 0.23.\n"
@ -1280,7 +1280,7 @@ Class<rdb::Database> decl_ReportDatabase ("rdb", "ReportDatabase",
"object's dimensions to micron units by scaling by the database unit.\n"
"\n"
"This method will also produce a flat version of the edge pairs inside the edge pair collection. "
"\\RdbCategory#scan_edge_pairs is a similar method which also supports construction of "
"\\RdbCategory#scan_collection is a similar method which also supports construction of "
"hierarchical databases from deep edge pair collections.\n"
"\n"
"This method has been introduced in version 0.23.\n"