mirror of https://github.com/KLayout/klayout.git
Merge commit '6369a1f993d6f9f059890b1c4e427dfd688f9547'
This commit is contained in:
commit
389f1728bd
12
Changelog
12
Changelog
|
|
@ -1,4 +1,4 @@
|
|||
0.28
|
||||
0.28 (2022-12-09):
|
||||
Changes (list may not be complete):
|
||||
* Bugfix: %GITHUB%/issues/989 "Layout#convert_pcell_to_static" does not handle"defunct" cells
|
||||
* Bugfix: %GITHUB%/issues/991 Basic library not available in Python module
|
||||
|
|
@ -7,10 +7,12 @@ Changes (list may not be complete):
|
|||
* Bugfix: %GITHUB%/issues/1138 Provide a way to suppress or redirect log output or disable warnings, specifically from file readers, in Python module
|
||||
* Bugfix: %GITHUB%/issues/1178 technology-data xml results in SEGV
|
||||
* Bugfix: %GITHUB%/issues/1190 General compatibility issue of Edges#extended/extended_* with deep mode
|
||||
* Enhacnement: %GITHUB%/issues/1056 X2 net names
|
||||
* Enhancement: %GITHUB%/issues/1052 Pdf documentation
|
||||
* Enhancement: %GITHUB%/issues/1053 Lefdef enhancements
|
||||
* Enhancement: Support for Qt6
|
||||
* Bugfix: %GITHUB%/issues/1216 DRC internal error on "moved"
|
||||
* Bugfix: %GITHUB%/issues/1214 LEF via parser error
|
||||
* Enhancement: %GITHUB%/issues/1056 X2 net names
|
||||
* Enhancement: %GITHUB%/issues/1052 PDF documentation
|
||||
* Enhancement: %GITHUB%/issues/1053 LEF/DEF enhancements
|
||||
* Enhancement: Qt6 enabled
|
||||
* Enhancement: KLayout paths
|
||||
- $KLAYOUT_HOME can now be empty string (no home folder used)
|
||||
- $KLAYOUT_PATH can now be empty string (no further and implicit search paths)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,10 @@
|
|||
klayout (0.28-1) unstable; urgency=low
|
||||
|
||||
* New features and bugfixes
|
||||
- See changelog
|
||||
|
||||
-- Matthias Köfferlein <matthias@koefferlein.de> Sat, 10 Dec 2022 01:49:33 +0100
|
||||
|
||||
klayout (0.27.6-1) unstable; urgency=low
|
||||
|
||||
* New features and bugfixes
|
||||
|
|
|
|||
|
|
@ -51,9 +51,9 @@ def escape(mod, s)
|
|||
s.gsub("&", "&").
|
||||
gsub("<", "<").
|
||||
gsub(">", ">").
|
||||
gsub(/\\\\([\w:#]+)/) { create_link(mod, $1) }.
|
||||
gsub(/\\([\w:#]+)/) { create_ref(mod, $1) }.
|
||||
gsub(/RBA::([\w#]+)/) { create_class_doc_ref($1) }
|
||||
gsub(/\\\\([\w:#\?]+)/) { create_link(mod, $1) }.
|
||||
gsub(/\\([\w:#\?]+)/) { create_ref(mod, $1) }.
|
||||
gsub(/RBA::([\w#\?]+)/) { create_class_doc_ref($1) }
|
||||
end
|
||||
|
||||
def unescape(s)
|
||||
|
|
|
|||
|
|
@ -298,7 +298,7 @@ const std::string cfg_ruler_snap_mode ("ruler-snap-mode");
|
|||
const std::string cfg_ruler_obj_snap ("ruler-obj-snap");
|
||||
const std::string cfg_ruler_grid_snap ("ruler-grid-snap");
|
||||
const std::string cfg_ruler_grid_micron ("grid-micron");
|
||||
const std::string cfg_ruler_templates ("ruler-templates");
|
||||
const std::string cfg_ruler_templates ("ruler-templates-v2");
|
||||
const std::string cfg_current_ruler_template ("current-ruler-template");
|
||||
|
||||
} // namespace ant
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ PluginDeclaration::initialized (lay::Dispatcher *root)
|
|||
// This provides a migration path from earlier versions (not having templates) to recent ones.
|
||||
std::map<std::string, const ant::Template *> cat_names;
|
||||
for (auto i = m_templates.begin (); i != m_templates.end (); ++i) {
|
||||
if (! i->category ().empty ()) {
|
||||
if (i->category ().find ("_") == 0) {
|
||||
cat_names.insert (std::make_pair (i->category (), i.operator-> ()));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,168 +154,126 @@ Template::from_string (const std::string &s)
|
|||
|
||||
while (! ex.at_end ()) {
|
||||
|
||||
if (ex.test ("version=")) {
|
||||
std::string key, s;
|
||||
ex.read_word_or_quoted (key);
|
||||
ex.expect ("=");
|
||||
ex.read_word_or_quoted (s);
|
||||
|
||||
if (key == "version") {
|
||||
|
||||
int v = 0;
|
||||
ex.read (v);
|
||||
tl::from_string (s, v);
|
||||
r.back ().version (v);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("mode=")) {
|
||||
} else if (key == "mode") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word_or_quoted (s);
|
||||
ant::RulerModeConverter mc;
|
||||
ant::Template::ruler_mode_type mode;
|
||||
mc.from_string (s, mode);
|
||||
r.back ().set_mode (mode);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("title=")) {
|
||||
} else if (key == "title") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word_or_quoted (s);
|
||||
r.back ().title (s);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("category=")) {
|
||||
} else if (key == "category") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word_or_quoted (s);
|
||||
r.back ().category (s);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("fmt=")) {
|
||||
} else if (key == "fmt") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word_or_quoted (s);
|
||||
r.back ().fmt (s);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("fmt_x=")) {
|
||||
} else if (key == "fmt_x") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word_or_quoted (s);
|
||||
r.back ().fmt_x (s);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("fmt_y=")) {
|
||||
} else if (key == "fmt_y") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word_or_quoted (s);
|
||||
r.back ().fmt_y (s);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("position=")) {
|
||||
} else if (key == "position") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word (s);
|
||||
ant::PositionConverter pc;
|
||||
ant::Object::position_type pos;
|
||||
pc.from_string (s, pos);
|
||||
r.back ().set_main_position (pos);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("xalign=")) {
|
||||
} else if (key == "xalign") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word (s);
|
||||
ant::AlignmentConverter ac;
|
||||
ant::Object::alignment_type a;
|
||||
ac.from_string (s, a);
|
||||
r.back ().set_main_xalign (a);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("yalign=")) {
|
||||
} else if (key == "yalign") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word (s);
|
||||
ant::AlignmentConverter ac;
|
||||
ant::Object::alignment_type a;
|
||||
ac.from_string (s, a);
|
||||
r.back ().set_main_yalign (a);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("xlabel_xalign=")) {
|
||||
} else if (key == "xlabel_xalign") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word (s);
|
||||
ant::AlignmentConverter ac;
|
||||
ant::Object::alignment_type a;
|
||||
ac.from_string (s, a);
|
||||
r.back ().set_xlabel_xalign (a);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("xlabel_yalign=")) {
|
||||
} else if (key == "xlabel_yalign") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word (s);
|
||||
ant::AlignmentConverter ac;
|
||||
ant::Object::alignment_type a;
|
||||
ac.from_string (s, a);
|
||||
r.back ().set_xlabel_yalign (a);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("ylabel_xalign=")) {
|
||||
} else if (key == "ylabel_xalign") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word (s);
|
||||
ant::AlignmentConverter ac;
|
||||
ant::Object::alignment_type a;
|
||||
ac.from_string (s, a);
|
||||
r.back ().set_ylabel_xalign (a);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("ylabel_yalign=")) {
|
||||
} else if (key == "ylabel_yalign") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word (s);
|
||||
ant::AlignmentConverter ac;
|
||||
ant::Object::alignment_type a;
|
||||
ac.from_string (s, a);
|
||||
r.back ().set_ylabel_yalign (a);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("style=")) {
|
||||
} else if (key == "style") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word (s);
|
||||
ant::StyleConverter sc;
|
||||
ant::Object::style_type st;
|
||||
sc.from_string (s, st);
|
||||
r.back ().style (st);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("outline=")) {
|
||||
} else if (key == "outline") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word (s);
|
||||
ant::OutlineConverter oc;
|
||||
ant::Object::outline_type ot;
|
||||
oc.from_string (s, ot);
|
||||
r.back ().outline (ot);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("snap=")) {
|
||||
} else if (key == "snap") {
|
||||
|
||||
bool f = false;
|
||||
ex.read (f);
|
||||
tl::from_string (s, f);
|
||||
r.back ().snap (f);
|
||||
ex.test (",");
|
||||
|
||||
} else if (ex.test ("angle_constraint=")) {
|
||||
} else if (key == "angle_constraint") {
|
||||
|
||||
std::string s;
|
||||
ex.read_word (s);
|
||||
ant::ACConverter sc;
|
||||
lay::angle_constraint_type sm;
|
||||
sc.from_string (s, sm);
|
||||
r.back ().angle_constraint (sm);
|
||||
ex.test (",");
|
||||
|
||||
} else {
|
||||
}
|
||||
|
||||
ex.test (",");
|
||||
|
||||
if (ex.test (";")) {
|
||||
|
||||
ex.expect (";");
|
||||
r.push_back (Template ());
|
||||
r.back ().version (0);
|
||||
|
||||
|
|
|
|||
|
|
@ -1226,7 +1226,7 @@ gsi::ClassExt<lay::LayoutViewBase> layout_view_decl (
|
|||
gsi::arg ("category"),
|
||||
"@brief Unregisters the template or templates with the given category string on this particular view\n"
|
||||
"\n"
|
||||
"See \\Annotation#unregister_template for a method doing the same on application level."
|
||||
"See \\Annotation#unregister_templates for a method doing the same on application level."
|
||||
"This method is hardly useful normally, but can be used when customizing layout views as "
|
||||
"individual widgets.\n"
|
||||
"\n"
|
||||
|
|
|
|||
|
|
@ -31,12 +31,11 @@ The following global functions are relevant for the DRC expressions:
|
|||
<li><a href="/about/drc_ref_global.xml#angle">angle</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#area">area</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#area_ratio">area_ratio</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#bbox_area_ratio">bbox_area_ratio</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#bbox_aspect_ratio">bbox_aspect_ratio</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#bbox_height">bbox_height</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#bbox_max">bbox_max</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#bbox_min">bbox_min</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#bbox_width">bbox_width</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#case">case</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#corners">corners</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#covering">covering</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#enc">enc</a> </li>
|
||||
|
|
@ -71,6 +70,7 @@ The following global functions are relevant for the DRC expressions:
|
|||
<li><a href="/about/drc_ref_global.xml#smoothed">smoothed</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#space">space</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#squares">squares</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#switch">switch</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#width">width</a> </li>
|
||||
<li><a href="/about/drc_ref_global.xml#with_holes">with_holes</a> </li>
|
||||
</ul>
|
||||
|
|
@ -358,8 +358,8 @@ The plain function is equivalent to "primary.bbox_width".
|
|||
This method acts on edge expressions and delivers a specific part of each edge.
|
||||
See <a href="/about/drc_ref_layer.xml#centers">layer#centers</a> for details about this functionality.
|
||||
</p>
|
||||
<a name="corners (in condition)"/><h2>"corners (in condition)" - Applies smoothing</h2>
|
||||
<keyword name="corners (in condition)"/>
|
||||
<a name="corners"/><h2>"corners" - Applies smoothing</h2>
|
||||
<keyword name="corners"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>expression.corners</tt></li>
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
<title>DRC Reference: Global Functions</title>
|
||||
<keyword name="global"/>
|
||||
<h2-index/>
|
||||
<a name="angle (in condition)"/><h2>"angle (in condition)" - In universal DRC context: selects edges based on their orientation</h2>
|
||||
<keyword name="angle (in condition)"/>
|
||||
<a name="angle"/><h2>"angle" - In universal DRC context: selects edges based on their orientation</h2>
|
||||
<keyword name="angle"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>angle (in condition)</tt></li>
|
||||
|
|
@ -41,7 +41,7 @@ is equivalent to "layer.area" (see <a href="/about/drc_ref_layer.xml#area">Layer
|
|||
polygons in the layer.
|
||||
</p><p>
|
||||
Without a layer argument, "area" represents an area 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#area">DRC#area</a> for more details).
|
||||
<a href="/about/drc_ref_global.xml">global</a> expressions (see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a> and <a href="/about/drc_ref_drc.xml#area">DRC#area</a> for more details).
|
||||
</p>
|
||||
<a name="area_ratio"/><h2>"area_ratio" - Selects primary shapes based on the ratio of bounding box and polygon area</h2>
|
||||
<keyword name="area_ratio"/>
|
||||
|
|
@ -359,7 +359,7 @@ See <a href="/about/drc_ref_netter.xml#connect_implicit">Netter#connect_implicit
|
|||
This function can be used with a layer argument. In this case it
|
||||
is equivalent to "layer.corners" (see <a href="/about/drc_ref_layer.xml#corners">Layer#corners</a>). Without a layer
|
||||
argument, "corners" represents the corner generator/filter in primary shapes for
|
||||
<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#corners">DRC#corners</a> for more details).
|
||||
<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_global.xml#corners">corners</a> for more details).
|
||||
</p><p>
|
||||
Like the layer-based version, the "corners" operator accepts the
|
||||
output type option: "as_dots" for dot-like edges, "as_boxes" for
|
||||
|
|
@ -380,7 +380,7 @@ 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 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>.
|
||||
as method to an expression. See there for more details: <a href="/about/drc_ref_global.xml#covering">covering</a>.
|
||||
</p>
|
||||
<a name="dbu"/><h2>"dbu" - Gets or sets the database unit to use</h2>
|
||||
<keyword name="dbu"/>
|
||||
|
|
@ -721,7 +721,7 @@ See <a href="/about/drc_ref_source.xml#extent">Source#extent</a> for a descripti
|
|||
This function can be used with a layer argument. In this case it
|
||||
is equivalent to "layer.extent_refs" (see <a href="/about/drc_ref_layer.xml#extent_refs">Layer#extent_refs</a>). Without a layer
|
||||
argument, "extent_refs" represents the partial extents extractor on primary shapes within
|
||||
<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#extent_refs">DRC#extent_refs</a> for more details).
|
||||
<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_global.xml#extent_refs">extent_refs</a> for more details).
|
||||
</p>
|
||||
<a name="extents"/><h2>"extents" - Returns the bounding box of each input object</h2>
|
||||
<keyword name="extents"/>
|
||||
|
|
@ -734,7 +734,7 @@ argument, "extent_refs" represents the partial extents extractor on primary shap
|
|||
This function can be used with a layer argument. In this case it
|
||||
is equivalent to "layer.extents" (see <a href="/about/drc_ref_layer.xml#extents">Layer#extents</a>). Without a layer
|
||||
argument, "extents" represents the extents generator on primary shapes within
|
||||
<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#extents">DRC#extents</a> for more details).
|
||||
<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_global.xml#extents">extents</a> for more details).
|
||||
</p>
|
||||
<a name="extract_devices"/><h2>"extract_devices" - Extracts devices for a given device extractor and device layer selection</h2>
|
||||
<keyword name="extract_devices"/>
|
||||
|
|
@ -813,7 +813,7 @@ argument, "holes" represents a hole extractor for primary shapes in
|
|||
This function can be used with a layer argument. In this case it
|
||||
is equivalent to "layer.hulls" (see <a href="/about/drc_ref_layer.xml#hulls">Layer#hulls</a>). Without a layer
|
||||
argument, "hulls" represents a hull contour extractor 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#hulls">DRC#hulls</a> for more details).
|
||||
<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_global.xml#hulls">hulls</a> for more details).
|
||||
</p>
|
||||
<a name="if_all"/><h2>"if_all" - Evaluates to the primary shape when all condition expression results are non-empty</h2>
|
||||
<keyword name="if_all"/>
|
||||
|
|
@ -888,7 +888,7 @@ this method.
|
|||
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>.
|
||||
as method to an expression. See there for more details: <a href="/about/drc_ref_global.xml#inside">inside</a>.
|
||||
</p>
|
||||
<a name="interacting"/><h2>"interacting" - Selects shapes interacting with other shapes</h2>
|
||||
<keyword name="interacting"/>
|
||||
|
|
@ -901,7 +901,7 @@ 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>.
|
||||
as method to an expression. See there for more details: <a href="/about/drc_ref_global.xml#interacting">interacting</a>.
|
||||
</p>
|
||||
<a name="is_deep?"/><h2>"is_deep?" - Returns true, if in deep mode</h2>
|
||||
<keyword name="is_deep?"/>
|
||||
|
|
@ -1038,8 +1038,8 @@ l2 = layout("second_layout.gds")
|
|||
</p><p>
|
||||
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)"/>
|
||||
<a name="length"/><h2>"length" - 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"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>length (in condition)</tt></li>
|
||||
|
|
@ -1136,7 +1136,7 @@ See also <a href="#max_area_ratio">max_area_ratio</a> for the other option affec
|
|||
This function can be used with a layer argument. In this case it
|
||||
is equivalent to "layer.middle" (see <a href="/about/drc_ref_layer.xml#middle">Layer#middle</a>). Without a layer
|
||||
argument, "middle" represents the bounding box center marker generator on primary shapes within
|
||||
<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#middle">DRC#middle</a> for more details).
|
||||
<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_global.xml#middle">middle</a> for more details).
|
||||
</p>
|
||||
<a name="mos3"/><h2>"mos3" - Supplies the MOS3 transistor extractor class</h2>
|
||||
<keyword name="mos3"/>
|
||||
|
|
@ -1267,7 +1267,7 @@ layout if is report database.
|
|||
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>.
|
||||
as method to an expression. See there for more details: <a href="/about/drc_ref_global.xml#outside">outside</a>.
|
||||
</p>
|
||||
<a name="overlap"/><h2>"overlap" - Performs an overlap check</h2>
|
||||
<keyword name="overlap"/>
|
||||
|
|
@ -1330,7 +1330,7 @@ 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>.
|
||||
as method to an expression. See there for more details: <a href="/about/drc_ref_global.xml#overlapping">overlapping</a>.
|
||||
</p>
|
||||
<a name="p"/><h2>"p" - Creates a point object</h2>
|
||||
<keyword name="p"/>
|
||||
|
|
@ -1424,7 +1424,7 @@ is called on.
|
|||
This function can be used with a layer argument. In this case it
|
||||
is equivalent to "layer.rectangles" (see <a href="/about/drc_ref_layer.xml#rectangles">Layer#rectangles</a>). Without a layer
|
||||
argument, "rectangles" represents the rectangles 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#rectangles">DRC#rectangles</a> for more details).
|
||||
<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_global.xml#rectangles">rectangles</a> for more details).
|
||||
</p>
|
||||
<a name="rectilinear"/><h2>"rectilinear" - Selects all polygons which are rectilinear</h2>
|
||||
<keyword name="rectilinear"/>
|
||||
|
|
@ -1437,7 +1437,7 @@ argument, "rectangles" represents the rectangles filter for primary shapes in
|
|||
This function can be used with a layer argument. In this case it
|
||||
is equivalent to "layer.rectilinear" (see <a href="/about/drc_ref_layer.xml#rectilinear">Layer#rectilinear</a>). Without a layer
|
||||
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).
|
||||
<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_global.xml#rectilinear">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"/>
|
||||
|
|
@ -1570,7 +1570,7 @@ about this extractor.
|
|||
This function can be used with a layer argument. In this case it
|
||||
is equivalent to "layer.rounded_corners" (see <a href="/about/drc_ref_layer.xml#rounded_corners">Layer#rounded_corners</a>). Without a layer
|
||||
argument, "rounded_corners" represents the corner rounding algorithm on primary shapes within
|
||||
<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#rounded_corners">DRC#rounded_corners</a> for more details).
|
||||
<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_global.xml#rounded_corners">rounded_corners</a> for more details).
|
||||
</p>
|
||||
<a name="secondary"/><h2>"secondary" - Provides secondary input for the "drc" universal DRC function</h2>
|
||||
<keyword name="secondary"/>
|
||||
|
|
@ -1703,7 +1703,7 @@ This function is equivalent to "verbose(false)" (see <a href="#verbose">verbose<
|
|||
This function can be used with a layer argument. In this case it
|
||||
is equivalent to "layer.sized" (see <a href="/about/drc_ref_layer.xml#sized">Layer#sized</a>). Without a layer
|
||||
argument, "sized" represents the polygon sizer on primary shapes within
|
||||
<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#sized">DRC#sized</a> for more details).
|
||||
<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_global.xml#sized">sized</a> for more details).
|
||||
</p>
|
||||
<a name="smoothed"/><h2>"smoothed" - Applies smoothing</h2>
|
||||
<keyword name="smoothed"/>
|
||||
|
|
@ -1716,7 +1716,7 @@ argument, "sized" represents the polygon sizer on primary shapes within
|
|||
This function can be used with a layer argument. In this case it
|
||||
is equivalent to "layer.smoothed" (see <a href="/about/drc_ref_layer.xml#smoothed">Layer#smoothed</a>). Without a layer
|
||||
argument, "smoothed" represents the polygon smoother on primary shapes within
|
||||
<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#smoothed">DRC#smoothed</a> for more details).
|
||||
<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_global.xml#smoothed">smoothed</a> for more details).
|
||||
</p>
|
||||
<a name="source"/><h2>"source" - Specifies a source layout</h2>
|
||||
<keyword name="source"/>
|
||||
|
|
@ -1815,7 +1815,7 @@ See <a href="#enclosing">enclosing</a> for more details about the various ways t
|
|||
This function can be used with a layer argument. In this case it
|
||||
is equivalent to "layer.squares" (see <a href="/about/drc_ref_layer.xml#squares">Layer#squares</a>). Without a layer
|
||||
argument, "squares" represents the rectangles 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#squares">DRC#squares</a> for more details).
|
||||
<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_global.xml#squares">squares</a> for more details).
|
||||
</p>
|
||||
<a name="switch"/><h2>"switch" - A conditional selector for the "drc" universal DRC function</h2>
|
||||
<keyword name="switch"/>
|
||||
|
|
@ -1913,9 +1913,9 @@ The tile border specifies the distance to which shapes are collected into the
|
|||
tile. In order words, when processing a tile, shapes within the border distance
|
||||
participate in the operations.
|
||||
</p><p>
|
||||
For some operations such as booleans (<a href="#and">and</a>, <a href="#or">or</a>, ...), <a href="#size">size</a> and the DRC functions (<a href="#width">width</a>, <a href="#space">space</a>, ...)
|
||||
a tile border is automatically established. For other operations such as <a href="#with_area">with_area</a>
|
||||
or <a href="#edges">edges</a>, the exact distance is unknown, because such operations may have a long range.
|
||||
For some operations such as booleans (<a href="/about/drc_ref_layer.xml#and">Layer#and</a>, <a href="/about/drc_ref_layer.xml#or">Layer#or</a>, ...), <a href="/about/drc_ref_layer.xml#size">Layer#size</a> and the DRC functions (<a href="/about/drc_ref_layer.xml#width">Layer#width</a>, <a href="/about/drc_ref_layer.xml#space">Layer#space</a>, ...)
|
||||
a tile border is automatically established. For other operations such as <a href="/about/drc_ref_layer.xml#with_area">Layer#with_area</a>
|
||||
or <a href="/about/drc_ref_layer.xml#edges">Layer#edges</a>, the exact distance is unknown, because such operations may have a long range.
|
||||
In that cases, no border is used. The tile_borders function may be used to specify a minimum border
|
||||
which is used in that case. That allows taking into account at least shapes within the
|
||||
given range, although not necessarily all.
|
||||
|
|
@ -2056,7 +2056,7 @@ shape.
|
|||
<p>
|
||||
"with_holes" represents a polygon selector for
|
||||
<a href="/about/drc_ref_drc.xml">DRC</a> expressions selecting polygons of the primary by their number of holes
|
||||
(see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a> and <a href="/about/drc_ref_drc.xml#with_holes">DRC#with_holes</a> for more details).
|
||||
(see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a> and <a href="/about/drc_ref_global.xml#with_holes">with_holes</a> for more details).
|
||||
</p>
|
||||
<a name="write_spice"/><h2>"write_spice" - Defines SPICE output format (with options)</h2>
|
||||
<keyword name="write_spice"/>
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ and <class_doc href="EdgePair">EdgePair</class_doc> objects are accepted too and
|
|||
objects. <class_doc href="Region">Region</class_doc>, <class_doc href="Edges">Edges</class_doc> and <class_doc href="EdgePair">EdgePair</class_doc> objects are accepted as well and the corresponding
|
||||
content of that collections is inserted into the output layer.
|
||||
</p><p>
|
||||
Other versions are available that allow translation of objects into other types (<a href="#collect_to_polygons">collect_to_polygons</a>,
|
||||
Other versions are available that allow translation of objects into other types (<a href="#collect_to_region">collect_to_region</a>,
|
||||
<a href="#collect_to_edges">collect_to_edges</a> and <a href="#collect_to_edge_pairs">collect_to_edge_pairs</a>).
|
||||
</p><p>
|
||||
Because this method executes inside the interpreter, it's inherently slow. Tiling does not
|
||||
|
|
@ -520,7 +520,7 @@ Filter operators select input polygons or edges based on their properties. These
|
|||
<li>"<a href="/about/drc_ref_drc.xml#area_ratio">DRC#area_ratio</a>": selects polygons based on their bounding box to polygon area ratio </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#bbox_aspect_ratio">DRC#bbox_aspect_ratio</a>": selects polygons based on their bounding box aspect ratio </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#relative_height">DRC#relative_height</a>": selects polygons based on their relative height </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#bbox_min">DRC#bbox_min</a>", "<a href="/about/drc_ref_global.xml#bbox_max">bbox_max</a>", "<a href="/about/drc_ref_global.xml#bbox_width">bbox_width</a>", "<a href="/about/drc_ref_global.xml#bbox_height">bbox_height</a>": selects polygons based on their bounding box properties </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#bbox_min">DRC#bbox_min</a>", "<a href="/about/drc_ref_drc.xml#bbox_max">DRC#bbox_max</a>", "<a href="/about/drc_ref_drc.xml#bbox_width">DRC#bbox_width</a>", "<a href="/about/drc_ref_drc.xml#bbox_height">DRC#bbox_height</a>": selects polygons based on their bounding box properties </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#length">DRC#length</a>": selects edges based on their length </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#angle">DRC#angle</a>": selects edges based on their orientation </li>
|
||||
</ul>
|
||||
|
|
@ -562,9 +562,9 @@ passes the polygons if the condition is met.
|
|||
The predicates available currently are:
|
||||
</p><p>
|
||||
<ul>
|
||||
<li>"<a href="/about/drc_ref_global.xml#rectangles">rectangles</a>": Filters rectangles </li>
|
||||
<li>"<a href="/about/drc_ref_global.xml#squares">squares</a>": Filters squares </li>
|
||||
<li>"<a href="/about/drc_ref_global.xml#rectilinear">rectilinear</a>": Filters rectilinear ("Manhattan") polygons </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#rectangles">DRC#rectangles</a>": Filters rectangles </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#squares">DRC#squares</a>": Filters squares </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#rectilinear">DRC#rectilinear</a>": Filters rectilinear ("Manhattan") polygons </li>
|
||||
</ul>
|
||||
</p><p>
|
||||
For the same reason as explained above, it's recommended to use these predicates
|
||||
|
|
@ -1274,7 +1274,7 @@ regions or edges, with each cell counting once.
|
|||
A high <a href="#count">count</a> to hier_count (flat to hierarchical) ratio is an indication
|
||||
of a good hierarchical compression.
|
||||
"hier_count" applies only to original layers without clip regions or
|
||||
cell filters and to layers in <a href="#deep">deep</a> mode. Otherwise, hier_count gives
|
||||
cell filters and to layers in <a href="/about/drc_ref_global.xml#deep">deep</a> mode. Otherwise, hier_count gives
|
||||
the same value than <a href="#count">count</a>.
|
||||
</p>
|
||||
<a name="holes"/><h2>"holes" - Selects all polygon holes from the input</h2>
|
||||
|
|
@ -1351,34 +1351,6 @@ The following image shows the effect of the "in" method (input1: red, input2: bl
|
|||
<p>
|
||||
This method is equivalent to calling <a href="#in">in</a> and <a href="#not_in">not_in</a>, but more
|
||||
efficient as it delivers both results in a single call.
|
||||
</p><p>
|
||||
This method is available for polygon, text and edge layers. Edges can be selected
|
||||
with respect to other edges or polygons. Texts can be selected with respect to
|
||||
polygons. Polygons can be selected with respect to edges, texts and other polygons.
|
||||
</p><p>
|
||||
The following image shows the effect of the "interacting" method (input1: red, input2: blue):
|
||||
</p><p>
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="/images/drc_interacting.png"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</p><p>
|
||||
If a single count is given, shapes from self are selected only if they do interact at least with the given
|
||||
number of (different) shapes from the other layer. If a min and max count is given, shapes from
|
||||
self are selected only if they interact with min_count or more, but a maximum of max_count different shapes
|
||||
from the other layer. Two polygons overlapping or touching at two locations are counted as single interactions.
|
||||
</p><p>
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="/images/drc_interacting2.png"/></td>
|
||||
<td><img src="/images/drc_interacting3.png"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/images/drc_interacting4.png"/></td>
|
||||
<td><img src="/images/drc_interacting5.png"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
<a name="insert"/><h2>"insert" - Inserts one or many objects into the layer</h2>
|
||||
<keyword name="insert"/>
|
||||
|
|
@ -1486,6 +1458,50 @@ method computing both inside and outside part in a single call.
|
|||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
<a name="interacting"/><h2>"interacting" - Selects shapes or regions of self which touch or overlap shapes from the other region</h2>
|
||||
<keyword name="interacting"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>layer.interacting(other)</tt></li>
|
||||
<li><tt>layer.interacting(other, min_count)</tt></li>
|
||||
<li><tt>layer.interacting(other, min_count, max_count)</tt></li>
|
||||
<li><tt>layer.interacting(other, min_count .. max_count)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This method selects all shapes or regions from self which touch or overlap shapes from the other
|
||||
region. Unless self is in raw mode (see <a href="#raw">raw</a>), coherent regions are selected from self,
|
||||
otherwise individual shapes are selected.
|
||||
It returns a new layer containing the selected shapes. A version which modifies self
|
||||
is <a href="#select_interacting">select_interacting</a>.
|
||||
</p><p>
|
||||
This method is available for polygon, text and edge layers. Edges can be selected
|
||||
with respect to other edges or polygons. Texts can be selected with respect to
|
||||
polygons. Polygons can be selected with respect to edges, texts and other polygons.
|
||||
</p><p>
|
||||
The following image shows the effect of the "interacting" method (input1: red, input2: blue):
|
||||
</p><p>
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="/images/drc_interacting.png"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</p><p>
|
||||
If a single count is given, shapes from self are selected only if they do interact at least with the given
|
||||
number of (different) shapes from the other layer. If a min and max count is given, shapes from
|
||||
self are selected only if they interact with min_count or more, but a maximum of max_count different shapes
|
||||
from the other layer. Two polygons overlapping or touching at two locations are counted as single interactions.
|
||||
</p><p>
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="/images/drc_interacting2.png"/></td>
|
||||
<td><img src="/images/drc_interacting3.png"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="/images/drc_interacting4.png"/></td>
|
||||
<td><img src="/images/drc_interacting5.png"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
<a name="intersections"/><h2>"intersections" - Returns the intersection points of intersecting edge segments for two edge collections</h2>
|
||||
<keyword name="intersections"/>
|
||||
<p>Usage:</p>
|
||||
|
|
@ -1541,7 +1557,7 @@ See <a href="#clean">clean</a> for a discussion of the clean state.
|
|||
This method will return true, if the polygons of this layer are
|
||||
merged, i.e. they don't overlap and form single continuous polygons.
|
||||
In clean mode, this is ensured implicitly. In raw mode (see <a href="#raw">raw</a>),
|
||||
merging can be achieved by using the <a href="#merge">merge</a> method. <a href="#is_merged">is_merged</a>?
|
||||
merging can be achieved by using the <a href="#merge">merge</a> method. <a href="#is_merged?">is_merged?</a>
|
||||
tells, whether calling <a href="#merge">merge</a> is necessary.
|
||||
</p>
|
||||
<a name="is_raw?"/><h2>"is_raw?" - Returns true, if the layer is raw state</h2>
|
||||
|
|
@ -2034,7 +2050,7 @@ The following image shows the effect of the notch check:
|
|||
Returns the parts of the polygons which are not orientable (i.e. "8" configuration) or self-overlapping.
|
||||
Merged semantics does not apply for this method. Always the raw polygons are taken (see <a href="#raw">raw</a>).
|
||||
</p><p>
|
||||
The odd_polygons check is not available in deep mode currently. See <a href="#deep_reject_odd_polygons">deep_reject_odd_polygons</a> for
|
||||
The odd_polygons check is not available in deep mode currently. See <a href="/about/drc_ref_global.xml#deep_reject_odd_polygons">deep_reject_odd_polygons</a> for
|
||||
an alternative.
|
||||
</p>
|
||||
<a name="ongrid"/><h2>"ongrid" - Checks for on-grid vertices</h2>
|
||||
|
|
@ -3078,14 +3094,14 @@ This feature has been introduced in version 0.23.2.
|
|||
</ul>
|
||||
<p>
|
||||
This method can be applied to original layers - i.e. ones that have
|
||||
been created with <a href="#input">input</a>. By default, a small box (2x2 DBU) will be produced on each
|
||||
been created with <a href="/about/drc_ref_global.xml#input">input</a>. By default, a small box (2x2 DBU) will be produced on each
|
||||
selected text. By using the "as_dots" option, degenerated point-like edges will be
|
||||
produced.
|
||||
</p><p>
|
||||
The preferred method however is to use true text layers created with <a href="#labels">labels</a>.
|
||||
The preferred method however is to use true text layers created with <a href="/about/drc_ref_global.xml#labels">labels</a>.
|
||||
In this case, without specifying "as_dots" or "as_boxes" retains the text
|
||||
objects as such a text filtering is applied. In contrast to this, layers generated
|
||||
with <a href="#input">input</a> cannot maintain the text nature of the selected objects and
|
||||
with <a href="/about/drc_ref_global.xml#input">input</a> cannot maintain the text nature of the selected objects and
|
||||
produce dots or small polygon boxes in the <a href="#texts">texts</a> method.
|
||||
</p><p>
|
||||
Texts can be selected either by exact match string or a pattern match with a
|
||||
|
|
@ -3135,7 +3151,7 @@ The effect of the operation is shown in these examples:
|
|||
<li><tt>layer.texts_not([ options ])</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This method can be applied to true text layers obtained with <a href="#labels">labels</a>.
|
||||
This method can be applied to true text layers obtained with <a href="/about/drc_ref_global.xml#labels">labels</a>.
|
||||
In this case, without specifying "as_dots" or "as_boxes" retains the text
|
||||
objects as such. Only text filtering is applied.
|
||||
</p><p>
|
||||
|
|
@ -3322,7 +3338,7 @@ on <a href="#without_angle">without_angle</a>. This is because <a href="#without
|
|||
one edge does not match the criterion. The logical opposite of "one edge matches" however is
|
||||
"both edges do not match".
|
||||
</p><p>
|
||||
The following images demonstrate some use cases of <a href="#with_angle">with_angle</a> and <a href="#without_angle:">without_angle:</a>
|
||||
The following images demonstrate some use cases of <a href="#with_angle">with_angle</a> and <a href="#without_angle">without_angle</a> :
|
||||
</p><p>
|
||||
<table>
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -230,8 +230,8 @@ on these layers touching or overlapping other shapes on these
|
|||
layers will form bigger, electrically connected areas.
|
||||
</p><p>
|
||||
Texts will be used to assign net names to the nets. The preferred
|
||||
method is to use <a href="#labels">labels</a> to create a text layer from a design
|
||||
layer. When using <a href="#input">input</a>, text labels are carried implicitly
|
||||
method is to use <a href="/about/drc_ref_global.xml#labels">labels</a> to create a text layer from a design
|
||||
layer. When using <a href="/about/drc_ref_global.xml#input">input</a>, text labels are carried implicitly
|
||||
with the polygons but at the cost of small dummy shapes (2x2 DBU
|
||||
marker polygons) and limited functionality.
|
||||
</p><p>
|
||||
|
|
|
|||
|
|
@ -396,7 +396,8 @@ output(w, "width violations")</pre>
|
|||
<a href="/about/drc_ref_layer.xml#separation">separation (sep)</a>,
|
||||
<a href="/about/drc_ref_layer.xml#notch">notch</a>,
|
||||
<a href="/about/drc_ref_layer.xml#isolated">isolated (iso)</a>,
|
||||
<a href="/about/drc_ref_layer.xml#enclosure">enclosure (enc)</a>,
|
||||
<a href="/about/drc_ref_layer.xml#enclosing">enclosing (enc)</a>,
|
||||
<a href="/about/drc_ref_layer.xml#enclosed">enclosed</a>,
|
||||
<a href="/about/drc_ref_layer.xml#overlap">overlap</a>
|
||||
</li>
|
||||
<li>Universal DRC (see below):<br/>
|
||||
|
|
@ -419,18 +420,20 @@ output(w, "width violations")</pre>
|
|||
<a href="/about/drc_ref_layer.xml#merged">merged</a>
|
||||
</li>
|
||||
<li>Shape selections:<br/>
|
||||
<a href="/about/drc_ref_layer.xml#covering">covering</a>,
|
||||
<a href="/about/drc_ref_layer.xml#in">in</a>,
|
||||
<a href="/about/drc_ref_layer.xml#inside">inside</a>,
|
||||
<a href="/about/drc_ref_layer.xml#interacting">interacting</a>,
|
||||
<a href="/about/drc_ref_layer.xml#pull_interacting">pull_interacting</a>,
|
||||
<a href="/about/drc_ref_layer.xml#outside">outside</a>,
|
||||
<a href="/about/drc_ref_layer.xml#touching">touching</a>,
|
||||
<a href="/about/drc_ref_layer.xml#overlapping">overlapping</a><br/>
|
||||
<a href="/about/drc_ref_layer.xml#pull_inside">pull_inside</a>,
|
||||
<a href="/about/drc_ref_layer.xml#pull_interacting">pull_interacting</a>,
|
||||
<a href="/about/drc_ref_layer.xml#pull_overlapping">pull_overlapping</a>,
|
||||
These methods are available as in-place operations as well:<br/>
|
||||
<a href="/about/drc_ref_layer.xml#select_covering">select_covering</a>,
|
||||
<a href="/about/drc_ref_layer.xml#select_interacting">select_interacting</a>,
|
||||
<a href="/about/drc_ref_layer.xml#select_inside">select_inside</a>,
|
||||
<a href="/about/drc_ref_layer.xml#select_outside">select_outside</a>,
|
||||
<a href="/about/drc_ref_layer.xml#select_touching">select_touching</a>,
|
||||
<a href="/about/drc_ref_layer.xml#select_overlapping">select_overlapping</a>
|
||||
</li>
|
||||
<li>Filters:<br/>
|
||||
|
|
@ -606,10 +609,10 @@ output(w, "width violations")</pre>
|
|||
<ul>
|
||||
<li>Boolean AND with a polygon layer: will select those texts
|
||||
which are inside or at the border of a polygon.
|
||||
<a href="/about/drc_ref_layer.xml#interact">interact</a> is a synonym for this operation.</li>
|
||||
<a href="/about/drc_ref_layer.xml#interacting">interact</a> is a synonym for this operation.</li>
|
||||
<li>Boolean NOT with a polygon layer: will select those texts
|
||||
which are outside of any polygon.
|
||||
<a href="/about/drc_ref_layer.xml#not_interact">not_interact</a> is a synonym for this operation.</li>
|
||||
<a href="/about/drc_ref_layer.xml#not_interacting">not_interact</a> is a synonym for this operation.</li>
|
||||
<li>As second layer for region interact: this way, polygons
|
||||
can be selected which are tagged with certain texts.</li>
|
||||
<li>Text filtering by string: texts can be filtered either
|
||||
|
|
@ -735,7 +738,8 @@ overlaps = layer.size(0.2).raw.merged(2)</pre>
|
|||
<a href="/about/drc_ref_layer.xml#separation">separation (sep)</a>,
|
||||
<a href="/about/drc_ref_layer.xml#notch">notch</a>,
|
||||
<a href="/about/drc_ref_layer.xml#isolated">isolated (iso)</a>,
|
||||
<a href="/about/drc_ref_layer.xml#enclosure">enclosure (enc)</a> or
|
||||
<a href="/about/drc_ref_layer.xml#enclosing">enclosing (enc)</a> or
|
||||
<a href="/about/drc_ref_layer.xml#enclosed">enclosed</a> or
|
||||
<a href="/about/drc_ref_layer.xml#overlap">overlap</a>.
|
||||
Shielding is turned off using the "transparent" option or turned on using "shielded". The latter
|
||||
is only for clarity, but is not required as shielding is enabled by default.
|
||||
|
|
@ -831,7 +835,7 @@ overlaps = layer.size(0.2).raw.merged(2)</pre>
|
|||
</ul>
|
||||
|
||||
<p>
|
||||
"measurement" is "width", "notch", "isolated" ("iso"), "separation" ("sep"), "overlap" or "enclosure" ("enc").
|
||||
"measurement" is "width", "notch", "isolated" ("iso"), "separation" ("sep"), "overlap", "enclosed" or "enclosuring" ("enc").
|
||||
The last three checks are two-layer checks which require a second layer. The
|
||||
second layer is specified together with the measurement like this:
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
connectivity (<a href="/about/drc_ref_global.xml#connect">connect</a>,
|
||||
<a href="/about/drc_ref_global.xml#connect_global">connect_global</a>,
|
||||
<a href="/about/drc_ref_global.xml#connect_implicit">connect_implicit</a>) and
|
||||
provided a reference netlist (<a href="/about/drc_ref_global.xml#schematic">schematic</a>),
|
||||
provided a reference netlist (<a href="/about/lvs_ref_global.xml#schematic">schematic</a>),
|
||||
this function will perform the actual compare:
|
||||
</p>
|
||||
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ X$2 VSS IN OUT SUBSTRATE NMOS PARAMS: L=0.25 W=0.9 AS=0.405 AD=0.405 PS=2.7
|
|||
<p>
|
||||
The main use case for reading netlists is for comparison in LVS.
|
||||
Reference netlists are read with the "schematic" function
|
||||
(see <a href="/about/drc_ref_global.xml#schematic">schematic</a>):
|
||||
(see <a href="/about/lvs_ref_global.xml#schematic">schematic</a>):
|
||||
</p>
|
||||
|
||||
<pre>schematic("inverter.cir")</pre>
|
||||
|
|
|
|||
|
|
@ -30,12 +30,11 @@ module DRC
|
|||
# @li \global#angle @/li
|
||||
# @li \global#area @/li
|
||||
# @li \global#area_ratio @/li
|
||||
# @li \global#bbox_area_ratio @/li
|
||||
# @li \global#bbox_aspect_ratio @/li
|
||||
# @li \global#bbox_height @/li
|
||||
# @li \global#bbox_max @/li
|
||||
# @li \global#bbox_min @/li
|
||||
# @li \global#bbox_width @/li
|
||||
# @li \global#case @/li
|
||||
# @li \global#corners @/li
|
||||
# @li \global#covering @/li
|
||||
# @li \global#enc @/li
|
||||
|
|
@ -70,6 +69,7 @@ module DRC
|
|||
# @li \global#smoothed @/li
|
||||
# @li \global#space @/li
|
||||
# @li \global#squares @/li
|
||||
# @li \global#switch @/li
|
||||
# @li \global#width @/li
|
||||
# @li \global#with_holes @/li
|
||||
# @/ul
|
||||
|
|
@ -755,7 +755,7 @@ CODE
|
|||
end
|
||||
|
||||
# %DRC%
|
||||
# @name corners (in condition)
|
||||
# @name corners
|
||||
# @brief Applies smoothing
|
||||
# @synopsis expression.corners
|
||||
# @synopsis expression.corners(as_dots)
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ module DRC
|
|||
# @li "\DRC#area_ratio": selects polygons based on their bounding box to polygon area ratio @/li
|
||||
# @li "\DRC#bbox_aspect_ratio": selects polygons based on their bounding box aspect ratio @/li
|
||||
# @li "\DRC#relative_height": selects polygons based on their relative height @/li
|
||||
# @li "\DRC#bbox_min", "\global#bbox_max", "\global#bbox_width", "\global#bbox_height": selects polygons based on their bounding box properties @/li
|
||||
# @li "\DRC#bbox_min", "\DRC#bbox_max", "\DRC#bbox_width", "\DRC#bbox_height": selects polygons based on their bounding box properties @/li
|
||||
# @li "\DRC#length": selects edges based on their length @/li
|
||||
# @li "\DRC#angle": selects edges based on their orientation @/li
|
||||
# @/ul
|
||||
|
|
@ -230,9 +230,9 @@ module DRC
|
|||
# The predicates available currently are:
|
||||
#
|
||||
# @ul
|
||||
# @li "\global#rectangles": Filters rectangles @/li
|
||||
# @li "\global#squares": Filters squares @/li
|
||||
# @li "\global#rectilinear": Filters rectilinear ("Manhattan") polygons @/li
|
||||
# @li "\DRC#rectangles": Filters rectangles @/li
|
||||
# @li "\DRC#squares": Filters squares @/li
|
||||
# @li "\DRC#rectilinear": Filters rectilinear ("Manhattan") polygons @/li
|
||||
# @/ul
|
||||
#
|
||||
# For the same reason as explained above, it's recommended to use these predicates
|
||||
|
|
@ -669,7 +669,7 @@ CODE
|
|||
# polygons in the layer.
|
||||
#
|
||||
# Without a layer argument, "area" represents an area filter for primary shapes in
|
||||
# \DRC# expressions (see \Layer#drc and \DRC#area for more details).
|
||||
# \global# expressions (see \Layer#drc and \DRC#area for more details).
|
||||
|
||||
# %DRC%
|
||||
# @name hulls
|
||||
|
|
@ -680,7 +680,7 @@ CODE
|
|||
# This function can be used with a layer argument. In this case it
|
||||
# is equivalent to "layer.hulls" (see \Layer#hulls). Without a layer
|
||||
# argument, "hulls" represents a hull contour extractor for primary shapes in
|
||||
# \DRC# expressions (see \Layer#drc and \DRC#hulls for more details).
|
||||
# \DRC# expressions (see \Layer#drc and \global#hulls for more details).
|
||||
|
||||
# %DRC%
|
||||
# @name holes
|
||||
|
|
@ -715,7 +715,7 @@ CODE
|
|||
# This function can be used with a layer argument. In this case it
|
||||
# is equivalent to "layer.rectangles" (see \Layer#rectangles). Without a layer
|
||||
# argument, "rectangles" represents the rectangles filter for primary shapes in
|
||||
# \DRC# expressions (see \Layer#drc and \DRC#rectangles for more details).
|
||||
# \DRC# expressions (see \Layer#drc and \global#rectangles for more details).
|
||||
|
||||
# %DRC%
|
||||
# @name squares
|
||||
|
|
@ -726,7 +726,7 @@ CODE
|
|||
# This function can be used with a layer argument. In this case it
|
||||
# is equivalent to "layer.squares" (see \Layer#squares). Without a layer
|
||||
# argument, "squares" represents the rectangles filter for primary shapes in
|
||||
# \DRC# expressions (see \Layer#drc and \DRC#squares for more details).
|
||||
# \DRC# expressions (see \Layer#drc and \global#squares for more details).
|
||||
|
||||
# %DRC%
|
||||
# @name rectilinear
|
||||
|
|
@ -737,10 +737,10 @@ CODE
|
|||
# This function can be used with a layer argument. In this case it
|
||||
# is equivalent to "layer.rectilinear" (see \Layer#rectilinear). Without a layer
|
||||
# argument, "rectilinear" represents the rectilinear polygons filter for primary shapes in
|
||||
# \DRC# expressions (see \Layer#drc and \DRC#rectilinear for more details).
|
||||
# \DRC# expressions (see \Layer#drc and \global#rectilinear for more details).
|
||||
|
||||
# %DRC%
|
||||
# @name length (in condition)
|
||||
# @name length
|
||||
# @brief Computes the total edge length of an edge layer or in universal DRC context: selects edges based on a length condition
|
||||
# @synopsis length (in condition)
|
||||
# @synopsis length(layer)
|
||||
|
|
@ -752,7 +752,7 @@ CODE
|
|||
# the operation acts similar to \Layer#with_length.
|
||||
|
||||
# %DRC%
|
||||
# @name angle (in condition)
|
||||
# @name angle
|
||||
# @brief In universal DRC context: selects edges based on their orientation
|
||||
# @synopsis angle (in condition)
|
||||
#
|
||||
|
|
@ -788,7 +788,7 @@ CODE
|
|||
# This function can be used with a layer argument. In this case it
|
||||
# is equivalent to "layer.corners" (see \Layer#corners). Without a layer
|
||||
# argument, "corners" represents the corner generator/filter in primary shapes for
|
||||
# \DRC# expressions (see \Layer#drc and \DRC#corners for more details).
|
||||
# \DRC# expressions (see \Layer#drc and \global#corners for more details).
|
||||
#
|
||||
# Like the layer-based version, the "corners" operator accepts the
|
||||
# output type option: "as_dots" for dot-like edges, "as_boxes" for
|
||||
|
|
@ -812,7 +812,7 @@ CODE
|
|||
# This function can be used with a layer argument. In this case it
|
||||
# is equivalent to "layer.extent_refs" (see \Layer#extent_refs). Without a layer
|
||||
# argument, "extent_refs" represents the partial extents extractor on primary shapes within
|
||||
# \DRC# expressions (see \Layer#drc and \DRC#extent_refs for more details).
|
||||
# \DRC# expressions (see \Layer#drc and \global#extent_refs for more details).
|
||||
|
||||
# %DRC%
|
||||
# @name extents
|
||||
|
|
@ -823,7 +823,7 @@ CODE
|
|||
# This function can be used with a layer argument. In this case it
|
||||
# is equivalent to "layer.extents" (see \Layer#extents). Without a layer
|
||||
# argument, "extents" represents the extents generator on primary shapes within
|
||||
# \DRC# expressions (see \Layer#drc and \DRC#extents for more details).
|
||||
# \DRC# expressions (see \Layer#drc and \global#extents for more details).
|
||||
|
||||
# %DRC%
|
||||
# @name middle
|
||||
|
|
@ -834,7 +834,7 @@ CODE
|
|||
# This function can be used with a layer argument. In this case it
|
||||
# is equivalent to "layer.middle" (see \Layer#middle). Without a layer
|
||||
# argument, "middle" represents the bounding box center marker generator on primary shapes within
|
||||
# \DRC# expressions (see \Layer#drc and \DRC#middle for more details).
|
||||
# \DRC# expressions (see \Layer#drc and \global#middle for more details).
|
||||
|
||||
# %DRC%
|
||||
# @name rounded_corners
|
||||
|
|
@ -845,7 +845,7 @@ CODE
|
|||
# This function can be used with a layer argument. In this case it
|
||||
# is equivalent to "layer.rounded_corners" (see \Layer#rounded_corners). Without a layer
|
||||
# argument, "rounded_corners" represents the corner rounding algorithm on primary shapes within
|
||||
# \DRC# expressions (see \Layer#drc and \DRC#rounded_corners for more details).
|
||||
# \DRC# expressions (see \Layer#drc and \global#rounded_corners for more details).
|
||||
|
||||
# %DRC%
|
||||
# @name sized
|
||||
|
|
@ -858,7 +858,7 @@ CODE
|
|||
# This function can be used with a layer argument. In this case it
|
||||
# is equivalent to "layer.sized" (see \Layer#sized). Without a layer
|
||||
# argument, "sized" represents the polygon sizer on primary shapes within
|
||||
# \DRC# expressions (see \Layer#drc and \DRC#sized for more details).
|
||||
# \DRC# expressions (see \Layer#drc and \global#sized for more details).
|
||||
|
||||
# %DRC%
|
||||
# @name smoothed
|
||||
|
|
@ -869,7 +869,7 @@ CODE
|
|||
# This function can be used with a layer argument. In this case it
|
||||
# is equivalent to "layer.smoothed" (see \Layer#smoothed). Without a layer
|
||||
# argument, "smoothed" represents the polygon smoother on primary shapes within
|
||||
# \DRC# expressions (see \Layer#drc and \DRC#smoothed for more details).
|
||||
# \DRC# expressions (see \Layer#drc and \global#smoothed for more details).
|
||||
|
||||
%w(
|
||||
extent_refs
|
||||
|
|
@ -896,7 +896,7 @@ CODE
|
|||
# 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 operator within \DRC# expressions (also see \Layer#drc). If can be used
|
||||
# as method to an expression. See there for more details: \DRC#covering.
|
||||
# as method to an expression. See there for more details: \global#covering.
|
||||
|
||||
# %DRC%
|
||||
# @name interacting
|
||||
|
|
@ -907,7 +907,7 @@ CODE
|
|||
# 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.
|
||||
# as method to an expression. See there for more details: \global#interacting.
|
||||
|
||||
# %DRC%
|
||||
# @name overlapping
|
||||
|
|
@ -918,7 +918,7 @@ CODE
|
|||
# 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.
|
||||
# as method to an expression. See there for more details: \global#overlapping.
|
||||
|
||||
# %DRC%
|
||||
# @name inside
|
||||
|
|
@ -928,7 +928,7 @@ CODE
|
|||
# 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.
|
||||
# as method to an expression. See there for more details: \global#inside.
|
||||
|
||||
# %DRC%
|
||||
# @name outside
|
||||
|
|
@ -938,7 +938,7 @@ CODE
|
|||
# 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.
|
||||
# as method to an expression. See there for more details: \global#outside.
|
||||
|
||||
%w(
|
||||
covering
|
||||
|
|
@ -961,7 +961,7 @@ CODE
|
|||
#
|
||||
# "with_holes" represents a polygon selector for
|
||||
# \DRC# expressions selecting polygons of the primary by their number of holes
|
||||
# (see \Layer#drc and \DRC#with_holes for more details).
|
||||
# (see \Layer#drc and \global#with_holes for more details).
|
||||
|
||||
def with_holes
|
||||
primary.with_holes
|
||||
|
|
|
|||
|
|
@ -783,9 +783,9 @@ module DRC
|
|||
# tile. In order words, when processing a tile, shapes within the border distance
|
||||
# participate in the operations.
|
||||
#
|
||||
# For some operations such as booleans (\and, \or, ...), \size and the DRC functions (\width, \space, ...)
|
||||
# a tile border is automatically established. For other operations such as \with_area
|
||||
# or \edges, the exact distance is unknown, because such operations may have a long range.
|
||||
# For some operations such as booleans (\Layer#and, \Layer#or, ...), \Layer#size and the DRC functions (\Layer#width, \Layer#space, ...)
|
||||
# a tile border is automatically established. For other operations such as \Layer#with_area
|
||||
# or \Layer#edges, the exact distance is unknown, because such operations may have a long range.
|
||||
# In that cases, no border is used. The tile_borders function may be used to specify a minimum border
|
||||
# which is used in that case. That allows taking into account at least shapes within the
|
||||
# given range, although not necessarily all.
|
||||
|
|
@ -1917,7 +1917,6 @@ CODE
|
|||
select_not_overlapping
|
||||
select_outside
|
||||
select_overlapping
|
||||
select_touching
|
||||
size
|
||||
sized
|
||||
smoothed
|
||||
|
|
@ -1937,7 +1936,7 @@ CODE
|
|||
with_area
|
||||
with_area_ratio
|
||||
with_bbox_area
|
||||
with_bbox_area_ratio
|
||||
with_bbox_aspect_ratio
|
||||
with_bbox_height
|
||||
with_bbox_max
|
||||
with_bbox_min
|
||||
|
|
@ -1948,7 +1947,7 @@ CODE
|
|||
without_area
|
||||
without_area_ratio
|
||||
without_bbox
|
||||
without_bbox_area_ratio
|
||||
without_bbox_aspect_ratio
|
||||
without_bbox_height
|
||||
without_bbox_max
|
||||
without_bbox_min
|
||||
|
|
|
|||
|
|
@ -302,7 +302,7 @@ module DRC
|
|||
# A high \count to hier_count (flat to hierarchical) ratio is an indication
|
||||
# of a good hierarchical compression.
|
||||
# "hier_count" applies only to original layers without clip regions or
|
||||
# cell filters and to layers in \deep mode. Otherwise, hier_count gives
|
||||
# cell filters and to layers in \global#deep mode. Otherwise, hier_count gives
|
||||
# the same value than \count.
|
||||
|
||||
def hier_count
|
||||
|
|
@ -901,7 +901,7 @@ CODE
|
|||
# one edge does not match the criterion. The logical opposite of "one edge matches" however is
|
||||
# "both edges do not match".
|
||||
#
|
||||
# The following images demonstrate some use cases of \with_angle and \without_angle:
|
||||
# The following images demonstrate some use cases of \with_angle and \without_angle :
|
||||
#
|
||||
# @table
|
||||
# @tr
|
||||
|
|
@ -1107,14 +1107,14 @@ CODE
|
|||
# @synopsis layer.texts(p)
|
||||
# @synopsis layer.texts([ options ])
|
||||
# This method can be applied to original layers - i.e. ones that have
|
||||
# been created with \input. By default, a small box (2x2 DBU) will be produced on each
|
||||
# been created with \global#input. By default, a small box (2x2 DBU) will be produced on each
|
||||
# selected text. By using the "as_dots" option, degenerated point-like edges will be
|
||||
# produced.
|
||||
#
|
||||
# The preferred method however is to use true text layers created with \labels.
|
||||
# The preferred method however is to use true text layers created with \global#labels.
|
||||
# In this case, without specifying "as_dots" or "as_boxes" retains the text
|
||||
# objects as such a text filtering is applied. In contrast to this, layers generated
|
||||
# with \input cannot maintain the text nature of the selected objects and
|
||||
# with \global#input cannot maintain the text nature of the selected objects and
|
||||
# produce dots or small polygon boxes in the \texts method.
|
||||
#
|
||||
# Texts can be selected either by exact match string or a pattern match with a
|
||||
|
|
@ -1163,7 +1163,7 @@ CODE
|
|||
# @synopsis layer.texts_not(p)
|
||||
# @synopsis layer.texts_not([ options ])
|
||||
#
|
||||
# This method can be applied to true text layers obtained with \labels.
|
||||
# This method can be applied to true text layers obtained with \global#labels.
|
||||
# In this case, without specifying "as_dots" or "as_boxes" retains the text
|
||||
# objects as such. Only text filtering is applied.
|
||||
#
|
||||
|
|
@ -1567,7 +1567,7 @@ CODE
|
|||
# objects. RBA::Region, RBA::Edges and RBA::EdgePair objects are accepted as well and the corresponding
|
||||
# content of that collections is inserted into the output layer.
|
||||
#
|
||||
# Other versions are available that allow translation of objects into other types (\collect_to_polygons,
|
||||
# Other versions are available that allow translation of objects into other types (\collect_to_region,
|
||||
# \collect_to_edges and \collect_to_edge_pairs).
|
||||
#
|
||||
# Because this method executes inside the interpreter, it's inherently slow. Tiling does not
|
||||
|
|
@ -1645,7 +1645,7 @@ CODE
|
|||
# Returns the parts of the polygons which are not orientable (i.e. "8" configuration) or self-overlapping.
|
||||
# Merged semantics does not apply for this method. Always the raw polygons are taken (see \raw).
|
||||
#
|
||||
# The odd_polygons check is not available in deep mode currently. See \deep_reject_odd_polygons for
|
||||
# The odd_polygons check is not available in deep mode currently. See \global#deep_reject_odd_polygons for
|
||||
# an alternative.
|
||||
|
||||
def odd_polygons
|
||||
|
|
|
|||
|
|
@ -83,8 +83,8 @@ module DRC
|
|||
# layers will form bigger, electrically connected areas.
|
||||
#
|
||||
# Texts will be used to assign net names to the nets. The preferred
|
||||
# method is to use \labels to create a text layer from a design
|
||||
# layer. When using \input, text labels are carried implicitly
|
||||
# method is to use \global#labels to create a text layer from a design
|
||||
# layer. When using \global#input, text labels are carried implicitly
|
||||
# with the polygons but at the cost of small dummy shapes (2x2 DBU
|
||||
# marker polygons) and limited functionality.
|
||||
#
|
||||
|
|
|
|||
|
|
@ -1977,7 +1977,7 @@ LAYBASIC_PUBLIC Class<lay::LayoutViewBase> decl_LayoutViewBase ("lay", "LayoutVi
|
|||
"@brief Sends a mouse move event\n"
|
||||
"\n"
|
||||
"This method is intended to emulate the mouse move events sent by Qt normally in environments where Qt is not present. "
|
||||
"The arguments follow the conventions used within \\Plugin#mouse_move_event for example.\n"
|
||||
"The arguments follow the conventions used within \\Plugin#mouse_moved_event for example.\n"
|
||||
"\n"
|
||||
"This method was introduced in version 0.28."
|
||||
) +
|
||||
|
|
@ -1985,7 +1985,7 @@ LAYBASIC_PUBLIC Class<lay::LayoutViewBase> decl_LayoutViewBase ("lay", "LayoutVi
|
|||
"@brief Sends a mouse button press event\n"
|
||||
"\n"
|
||||
"This method is intended to emulate the mouse button press events sent by Qt normally in environments where Qt is not present. "
|
||||
"The arguments follow the conventions used within \\Plugin#mouse_move_event for example.\n"
|
||||
"The arguments follow the conventions used within \\Plugin#mouse_moved_event for example.\n"
|
||||
"\n"
|
||||
"This method was introduced in version 0.28."
|
||||
) +
|
||||
|
|
@ -1993,7 +1993,7 @@ LAYBASIC_PUBLIC Class<lay::LayoutViewBase> decl_LayoutViewBase ("lay", "LayoutVi
|
|||
"@brief Sends a mouse button double-click event\n"
|
||||
"\n"
|
||||
"This method is intended to emulate the mouse button double-click events sent by Qt normally in environments where Qt is not present. "
|
||||
"The arguments follow the conventions used within \\Plugin#mouse_move_event for example.\n"
|
||||
"The arguments follow the conventions used within \\Plugin#mouse_moved_event for example.\n"
|
||||
"\n"
|
||||
"This method was introduced in version 0.28."
|
||||
) +
|
||||
|
|
@ -2001,7 +2001,7 @@ LAYBASIC_PUBLIC Class<lay::LayoutViewBase> decl_LayoutViewBase ("lay", "LayoutVi
|
|||
"@brief Sends a mouse button release event\n"
|
||||
"\n"
|
||||
"This method is intended to emulate the mouse button release events sent by Qt normally in environments where Qt is not present. "
|
||||
"The arguments follow the conventions used within \\Plugin#mouse_move_event for example.\n"
|
||||
"The arguments follow the conventions used within \\Plugin#mouse_moved_event for example.\n"
|
||||
"\n"
|
||||
"This method was introduced in version 0.28."
|
||||
) +
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -55,6 +55,10 @@ class PixelBuffer:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> PixelBuffer:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __eq__(self, other: object) -> bool:
|
||||
r"""
|
||||
@brief Returns a value indicating whether self is identical to the other image
|
||||
|
|
@ -239,6 +243,10 @@ class BitmapBuffer:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> BitmapBuffer:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __eq__(self, other: object) -> bool:
|
||||
r"""
|
||||
@brief Returns a value indicating whether self is identical to the other image
|
||||
|
|
@ -395,6 +403,10 @@ class MacroExecutionContext:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> MacroExecutionContext:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -635,6 +647,10 @@ class MacroInterpreter:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> MacroInterpreter:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -1635,6 +1651,10 @@ class LayerProperties:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> LayerProperties:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __eq__(self, other: object) -> bool:
|
||||
r"""
|
||||
@brief Equality
|
||||
|
|
@ -2221,6 +2241,11 @@ class LayerPropertiesNodeRef(LayerPropertiesNode):
|
|||
@brief Creates a \LayerPropertiesNode object as a copy of the content of this node.
|
||||
This method is mainly provided for backward compatibility with 0.24 and before.
|
||||
"""
|
||||
def __deepcopy__(self) -> LayerPropertiesNode:
|
||||
r"""
|
||||
@brief Creates a \LayerPropertiesNode object as a copy of the content of this node.
|
||||
This method is mainly provided for backward compatibility with 0.24 and before.
|
||||
"""
|
||||
def _assign(self, other: LayerProperties) -> None:
|
||||
r"""
|
||||
@brief Assigns another object to self
|
||||
|
|
@ -2271,14 +2296,14 @@ class LayerPropertiesNodeRef(LayerPropertiesNode):
|
|||
r"""
|
||||
@brief Assigns the contents of the 'other' object to self.
|
||||
|
||||
This version accepts a \LayerPropertiesNode object and allows modification of the layer node's hierarchy. Assignment will reconfigure the layer node in the view.
|
||||
This version accepts a \LayerProperties object. Assignment will change the properties of the layer in the view.
|
||||
"""
|
||||
@overload
|
||||
def assign(self, other: LayerProperties) -> None:
|
||||
r"""
|
||||
@brief Assigns the contents of the 'other' object to self.
|
||||
|
||||
This version accepts a \LayerProperties object. Assignment will change the properties of the layer in the view.
|
||||
This version accepts a \LayerPropertiesNode object and allows modification of the layer node's hierarchy. Assignment will reconfigure the layer node in the view.
|
||||
"""
|
||||
def delete(self) -> None:
|
||||
r"""
|
||||
|
|
@ -2317,6 +2342,10 @@ class LayerPropertiesIterator:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> LayerPropertiesIterator:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __eq__(self, other: object) -> bool:
|
||||
r"""
|
||||
@brief Equality
|
||||
|
|
@ -2562,12 +2591,12 @@ class LayoutViewBase:
|
|||
@overload
|
||||
def __eq__(self, other: object) -> bool:
|
||||
r"""
|
||||
@brief Compares an enum with an integer value
|
||||
@brief Compares two enums
|
||||
"""
|
||||
@overload
|
||||
def __eq__(self, other: object) -> bool:
|
||||
r"""
|
||||
@brief Compares two enums
|
||||
@brief Compares an enum with an integer value
|
||||
"""
|
||||
@overload
|
||||
def __init__(self, i: int) -> None:
|
||||
|
|
@ -2592,12 +2621,12 @@ class LayoutViewBase:
|
|||
@overload
|
||||
def __ne__(self, other: object) -> bool:
|
||||
r"""
|
||||
@brief Compares two enums for inequality
|
||||
@brief Compares an enum with an integer for inequality
|
||||
"""
|
||||
@overload
|
||||
def __ne__(self, other: object) -> bool:
|
||||
r"""
|
||||
@brief Compares an enum with an integer for inequality
|
||||
@brief Compares two enums for inequality
|
||||
"""
|
||||
def __repr__(self) -> str:
|
||||
r"""
|
||||
|
|
@ -2865,6 +2894,24 @@ class LayoutViewBase:
|
|||
@brief A event indicating that annotations have been added or removed
|
||||
This event has been added in version 0.25.
|
||||
"""
|
||||
on_apply_technology: None
|
||||
r"""
|
||||
Getter:
|
||||
@brief An event indicating that a cellview has requested a new technology
|
||||
|
||||
If the technology of a cellview is changed, this event is triggered.
|
||||
The integer parameter of this event will indicate the cellview that has changed.
|
||||
|
||||
This event has been introduced in version 0.28.
|
||||
|
||||
Setter:
|
||||
@brief An event indicating that a cellview has requested a new technology
|
||||
|
||||
If the technology of a cellview is changed, this event is triggered.
|
||||
The integer parameter of this event will indicate the cellview that has changed.
|
||||
|
||||
This event has been introduced in version 0.28.
|
||||
"""
|
||||
on_cell_visibility_changed: None
|
||||
r"""
|
||||
Getter:
|
||||
|
|
@ -3873,6 +3920,16 @@ class LayoutViewBase:
|
|||
r"""
|
||||
@brief Hides the given cell for the given cellview
|
||||
"""
|
||||
def icon_for_layer(self, iter: LayerPropertiesIterator, w: int, h: int, dpr: float, di_off: Optional[int] = ..., no_state: Optional[bool] = ...) -> PixelBuffer:
|
||||
r"""
|
||||
@brief Creates an icon pixmap for the given layer.
|
||||
|
||||
The icon will have size w times h pixels multiplied by the device pixel ratio (dpr). The dpr is The number of physical pixels per logical pixels on high-DPI displays.
|
||||
|
||||
'di_off' will shift the dither pattern by the given number of (physical) pixels. If 'no_state' is true, the icon will not reflect visibility or validity states but rather the display style.
|
||||
|
||||
This method has been introduced in version 0.28.
|
||||
"""
|
||||
def image(self, id: int) -> Image:
|
||||
r"""
|
||||
@brief Gets the image given by an ID
|
||||
|
|
@ -4895,6 +4952,10 @@ class CellView:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> CellView:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __eq__(self, other: object) -> bool:
|
||||
r"""
|
||||
@brief Equality: indicates whether the cellviews refer to the same one
|
||||
|
|
@ -5677,11 +5738,11 @@ class ActionBase:
|
|||
def icon(self) -> None:
|
||||
r"""
|
||||
WARNING: This variable can only be set, not retrieved.
|
||||
@brief Sets the icon to the given image file
|
||||
@brief Sets the icon to the given \QIcon object
|
||||
|
||||
@param file The image file to load for the icon
|
||||
@param qicon The QIcon object
|
||||
|
||||
Passing an empty string will reset the icon.
|
||||
This variant has been added in version 0.28.
|
||||
"""
|
||||
icon_text: str
|
||||
r"""
|
||||
|
|
@ -6398,6 +6459,10 @@ class Cursor:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> Cursor:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -6516,6 +6581,10 @@ class ButtonState:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> ButtonState:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -6670,6 +6739,10 @@ class KeyCode:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> KeyCode:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -6900,6 +6973,10 @@ class DoubleValue:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> DoubleValue:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -7003,6 +7080,10 @@ class IntValue:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> IntValue:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -7106,6 +7187,10 @@ class StringValue:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> StringValue:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -7213,6 +7298,10 @@ class StringListValue:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> StringListValue:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -7516,6 +7605,10 @@ class BrowserSource_Native:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> BrowserSource_Native:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -7631,6 +7724,10 @@ class BrowserSource:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> BrowserSource:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self, arg0: str) -> None:
|
||||
r"""
|
||||
@brief Constructs a BrowserSource object with a default HTML string
|
||||
|
|
@ -8027,6 +8124,10 @@ class InputDialog:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> InputDialog:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -8224,6 +8325,10 @@ class FileDialog:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> FileDialog:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -8417,6 +8522,10 @@ class MessageBox(QMainWindow_Native):
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> MessageBox:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def _create(self) -> None:
|
||||
r"""
|
||||
@brief Ensures the C++ object is created
|
||||
|
|
@ -8519,6 +8628,10 @@ class NetlistObjectPath:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> NetlistObjectPath:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -8615,6 +8728,10 @@ class NetlistObjectsPath:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> NetlistObjectsPath:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -9103,6 +9220,10 @@ class BasicAnnotation:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> BasicAnnotation:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -9305,6 +9426,13 @@ class Annotation(BasicAnnotation):
|
|||
@brief Gets the vertical angle code for use with the \angle_constraint method
|
||||
If this value is specified for the angle constraint, only vertical rulers are allowed.
|
||||
"""
|
||||
OutlineAngle: ClassVar[int]
|
||||
r"""
|
||||
@brief Gets the angle measurement ruler outline code for use with the \outline method
|
||||
When this outline style is specified, the ruler is drawn to indicate the angle between the first and last segment.
|
||||
|
||||
This constant has been introduced in version 0.28.
|
||||
"""
|
||||
OutlineBox: ClassVar[int]
|
||||
r"""
|
||||
@brief Gets the box outline code for use with the \outline method
|
||||
|
|
@ -9333,6 +9461,13 @@ class Annotation(BasicAnnotation):
|
|||
|
||||
This constant has been introduced in version 0.26.
|
||||
"""
|
||||
OutlineRadius: ClassVar[int]
|
||||
r"""
|
||||
@brief Gets the radius measurement ruler outline code for use with the \outline method
|
||||
When this outline style is specified, the ruler is drawn to indicate a radius defined by at least three points of the ruler.
|
||||
|
||||
This constant has been introduced in version 0.28.
|
||||
"""
|
||||
OutlineXY: ClassVar[int]
|
||||
r"""
|
||||
@brief Gets the xy outline code for use with the \outline method
|
||||
|
|
@ -9375,6 +9510,7 @@ class Annotation(BasicAnnotation):
|
|||
r"""
|
||||
@brief Specifies auto-metric ruler mode for the \register_template method
|
||||
In auto-metric mode, a ruler can be placed with a single click and p1/p2 will be determined from the neighborhood.
|
||||
|
||||
This constant has been introduced in version 0.25
|
||||
"""
|
||||
RulerModeNormal: ClassVar[int]
|
||||
|
|
@ -9387,8 +9523,23 @@ class Annotation(BasicAnnotation):
|
|||
r"""
|
||||
@brief Specifies single-click ruler mode for the \register_template method
|
||||
In single click-mode, a ruler can be placed with a single click and p1 will be == p2.
|
||||
|
||||
This constant has been introduced in version 0.25
|
||||
"""
|
||||
RulerMultiSegment: ClassVar[int]
|
||||
r"""
|
||||
@brief Specifies multi-segment mode
|
||||
In multi-segment mode, multiple segments can be created. The ruler is finished with a double click.
|
||||
|
||||
This constant has been introduced in version 0.28
|
||||
"""
|
||||
RulerThreeClicks: ClassVar[int]
|
||||
r"""
|
||||
@brief Specifies three-click ruler mode for the \register_template method
|
||||
In this ruler mode, two segments are created for angle and circle radius measurements. Three mouse clicks are required.
|
||||
|
||||
This constant has been introduced in version 0.28
|
||||
"""
|
||||
StyleArrowBoth: ClassVar[int]
|
||||
r"""
|
||||
@brief Gets the both arrow ends style code for use the \style method
|
||||
|
|
@ -9543,22 +9694,47 @@ class Annotation(BasicAnnotation):
|
|||
Getter:
|
||||
@brief Gets the first point of the ruler or marker
|
||||
The points of the ruler or marker are always given in micron units in floating-point coordinates.
|
||||
|
||||
This method is provided for backward compatibility. Starting with version 0.28, rulers can be multi-segmented. Use \points or \seg_p1 to retrieve the points of the ruler segments.
|
||||
|
||||
@return The first point
|
||||
|
||||
Setter:
|
||||
@brief Sets the first point of the ruler or marker
|
||||
The points of the ruler or marker are always given in micron units in floating-point coordinates.
|
||||
|
||||
This method is provided for backward compatibility. Starting with version 0.28, rulers can be multi-segmented. Use \points= to specify the ruler segments.
|
||||
"""
|
||||
p2: db.DPoint
|
||||
r"""
|
||||
Getter:
|
||||
@brief Gets the second point of the ruler or marker
|
||||
The points of the ruler or marker are always given in micron units in floating-point coordinates.
|
||||
|
||||
This method is provided for backward compatibility. Starting with version 0.28, rulers can be multi-segmented. Use \points or \seg_p1 to retrieve the points of the ruler segments.
|
||||
|
||||
@return The second point
|
||||
|
||||
Setter:
|
||||
@brief Sets the second point of the ruler or marker
|
||||
The points of the ruler or marker are always given in micron units in floating-point coordinates.
|
||||
|
||||
This method is provided for backward compatibility. Starting with version 0.28, rulers can be multi-segmented. Use \points= to specify the ruler segments.
|
||||
"""
|
||||
points: List[db.DPoint]
|
||||
r"""
|
||||
Getter:
|
||||
@brief Gets the points of the ruler
|
||||
A single-segmented ruler has two points. Rulers with more points have more segments correspondingly. Note that the point list may have one point only (single-point ruler) or may even be empty.
|
||||
|
||||
Use \points= to set the segment points. Use \segments to get the number of segments and \seg_p1 and \seg_p2 to get the first and second point of one segment.
|
||||
|
||||
Multi-segmented rulers have been introduced in version 0.28
|
||||
Setter:
|
||||
@brief Sets the points for a (potentially) multi-segmented ruler
|
||||
See \points for a description of multi-segmented rulers. The list of points passed to this method is cleaned from duplicates before being stored inside the ruler.
|
||||
|
||||
This method has been introduced in version 0.28.
|
||||
"""
|
||||
snap: bool
|
||||
r"""
|
||||
|
|
@ -9631,85 +9807,12 @@ class Annotation(BasicAnnotation):
|
|||
This method has been introduced in version 0.25
|
||||
"""
|
||||
@classmethod
|
||||
def angle_any(cls) -> int:
|
||||
def from_s(cls, s: str) -> Annotation:
|
||||
r"""
|
||||
@brief Gets the any angle code for use with the \angle_constraint method
|
||||
If this value is specified for the angle constraint, all angles will be allowed.
|
||||
"""
|
||||
@classmethod
|
||||
def angle_diagonal(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the diagonal angle code for use with the \angle_constraint method
|
||||
If this value is specified for the angle constraint, only multiples of 45 degree are allowed.
|
||||
"""
|
||||
@classmethod
|
||||
def angle_global(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the global angle code for use with the \angle_constraint method.
|
||||
This code will tell the ruler or marker to use the angle constraint defined globally.
|
||||
"""
|
||||
@classmethod
|
||||
def angle_horizontal(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the horizontal angle code for use with the \angle_constraint method
|
||||
If this value is specified for the angle constraint, only horizontal rulers are allowed.
|
||||
"""
|
||||
@classmethod
|
||||
def angle_ortho(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the ortho angle code for use with the \angle_constraint method
|
||||
If this value is specified for the angle constraint, only multiples of 90 degree are allowed.
|
||||
"""
|
||||
@classmethod
|
||||
def angle_vertical(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the vertical angle code for use with the \angle_constraint method
|
||||
If this value is specified for the angle constraint, only vertical rulers are allowed.
|
||||
"""
|
||||
@classmethod
|
||||
def outline_box(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the box outline code for use with the \outline method
|
||||
When this outline style is specified, a box is drawn with the corners specified by the start and end point. All box edges are drawn in the style specified with the \style attribute.
|
||||
"""
|
||||
@classmethod
|
||||
def outline_diag(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the diagonal output code for use with the \outline method
|
||||
When this outline style is specified, a line connecting start and end points in the given style (ruler, arrow or plain line) is drawn.
|
||||
"""
|
||||
@classmethod
|
||||
def outline_diag_xy(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the xy plus diagonal outline code for use with the \outline method
|
||||
@brief outline_xy code used by the \outline method
|
||||
When this outline style is specified, three lines are drawn: one horizontal from left to right and attached to the end of that a line from the bottom to the top. Another line is drawn connecting the start and end points directly. The lines are drawn in the specified style (see \style method).
|
||||
"""
|
||||
@classmethod
|
||||
def outline_diag_yx(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the yx plus diagonal outline code for use with the \outline method
|
||||
When this outline style is specified, three lines are drawn: one vertical from bottom to top and attached to the end of that a line from the left to the right. Another line is drawn connecting the start and end points directly. The lines are drawn in the specified style (see \style method).
|
||||
"""
|
||||
@classmethod
|
||||
def outline_ellipse(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the ellipse outline code for use with the \outline method
|
||||
When this outline style is specified, an ellipse is drawn with the extensions specified by the start and end point. The contour drawn as a line.
|
||||
@brief Creates a ruler from a string representation
|
||||
This function creates a ruler from the string returned by \to_s.
|
||||
|
||||
This constant has been introduced in version 0.26.
|
||||
"""
|
||||
@classmethod
|
||||
def outline_xy(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the xy outline code for use with the \outline method
|
||||
When this outline style is specified, two lines are drawn: one horizontal from left to right and attached to the end of that a line from the bottom to the top. The lines are drawn in the specified style (see \style method).
|
||||
"""
|
||||
@classmethod
|
||||
def outline_yx(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the yx outline code for use with the \outline method
|
||||
When this outline style is specified, two lines are drawn: one vertical from bottom to top and attached to the end of that a line from the left to the right. The lines are drawn in the specified style (see \style method).
|
||||
This method was introduced in version 0.28.
|
||||
"""
|
||||
@classmethod
|
||||
def register_template(cls, annotation: BasicAnnotation, title: str, mode: Optional[int] = ...) -> None:
|
||||
|
|
@ -9728,60 +9831,6 @@ class Annotation(BasicAnnotation):
|
|||
This method has been added in version 0.25.
|
||||
"""
|
||||
@classmethod
|
||||
def style_arrow_both(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the both arrow ends style code for use the \style method
|
||||
When this style is specified, a two-headed arrow is drawn.
|
||||
"""
|
||||
@classmethod
|
||||
def style_arrow_end(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the end arrow style code for use the \style method
|
||||
When this style is specified, an arrow is drawn pointing from the start to the end point.
|
||||
"""
|
||||
@classmethod
|
||||
def style_arrow_start(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the start arrow style code for use the \style method
|
||||
When this style is specified, an arrow is drawn pointing from the end to the start point.
|
||||
"""
|
||||
@classmethod
|
||||
def style_cross_both(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the line style code for use with the \style method
|
||||
When this style is specified, a cross is drawn at both points.
|
||||
|
||||
This constant has been added in version 0.26.
|
||||
"""
|
||||
@classmethod
|
||||
def style_cross_end(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the line style code for use with the \style method
|
||||
When this style is specified, a cross is drawn at the end point.
|
||||
|
||||
This constant has been added in version 0.26.
|
||||
"""
|
||||
@classmethod
|
||||
def style_cross_start(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the line style code for use with the \style method
|
||||
When this style is specified, a cross is drawn at the start point.
|
||||
|
||||
This constant has been added in version 0.26.
|
||||
"""
|
||||
@classmethod
|
||||
def style_line(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the line style code for use with the \style method
|
||||
When this style is specified, a plain line is drawn.
|
||||
"""
|
||||
@classmethod
|
||||
def style_ruler(cls) -> int:
|
||||
r"""
|
||||
@brief Gets the ruler style code for use the \style method
|
||||
When this style is specified, the annotation will show a ruler with some ticks at distances indicating a decade of units and a suitable subdivision into minor ticks at intervals of 1, 2 or 5 units.
|
||||
"""
|
||||
@classmethod
|
||||
def unregister_templates(cls, category: str) -> None:
|
||||
r"""
|
||||
@brief Unregisters the template or templates with the given category string globally
|
||||
|
|
@ -9883,17 +9932,42 @@ class Annotation(BasicAnnotation):
|
|||
|
||||
This method was introduced in version 0.25.
|
||||
"""
|
||||
def text(self) -> str:
|
||||
def seg_p1(self, segment_index: int) -> db.DPoint:
|
||||
r"""
|
||||
@brief Gets the first point of the given segment.
|
||||
The segment is indicated by the segment index which is a number between 0 and \segments-1.
|
||||
|
||||
This method has been introduced in version 0.28.
|
||||
"""
|
||||
def seg_p2(self, segment_index: int) -> db.DPoint:
|
||||
r"""
|
||||
@brief Gets the second point of the given segment.
|
||||
The segment is indicated by the segment index which is a number between 0 and \segments-1.
|
||||
The second point of a segment is also the first point of the following segment if there is one.
|
||||
|
||||
This method has been introduced in version 0.28.
|
||||
"""
|
||||
def segments(self) -> int:
|
||||
r"""
|
||||
@brief Gets the number of segments.
|
||||
This method returns the number of segments the ruler is made up. Even though the ruler can be one or even zero points, the number of segments is at least 1.
|
||||
|
||||
This method has been introduced in version 0.28.
|
||||
"""
|
||||
def text(self, index: Optional[int] = ...) -> str:
|
||||
r"""
|
||||
@brief Returns the formatted text for the main label
|
||||
The index parameter indicates which segment to use (0 is the first one). It has been added in version 0.28.
|
||||
"""
|
||||
def text_x(self) -> str:
|
||||
def text_x(self, index: Optional[int] = ...) -> str:
|
||||
r"""
|
||||
@brief Returns the formatted text for the x-axis label
|
||||
The index parameter indicates which segment to use (0 is the first one). It has been added in version 0.28.
|
||||
"""
|
||||
def text_y(self) -> str:
|
||||
def text_y(self, index: Optional[int] = ...) -> str:
|
||||
r"""
|
||||
@brief Returns the formatted text for the y-axis label
|
||||
The index parameter indicates which segment to use (0 is the first one). It has been added in version 0.28.
|
||||
"""
|
||||
def to_s(self) -> str:
|
||||
r"""
|
||||
|
|
@ -10088,6 +10162,10 @@ class ObjectInstPath:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> ObjectInstPath:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __eq__(self, b: object) -> bool:
|
||||
r"""
|
||||
@brief Equality of two ObjectInstPath objects
|
||||
|
|
@ -10419,6 +10497,10 @@ class ImageDataMapping:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> ImageDataMapping:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Create a new data mapping object with default settings
|
||||
|
|
@ -10568,6 +10650,10 @@ class BasicImage:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> BasicImage:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
|
|||
|
|
@ -35,6 +35,10 @@ class RdbReference:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> RdbReference:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self, trans: db.DCplxTrans, parent_cell_id: int) -> None:
|
||||
r"""
|
||||
@brief Creates a reference with a given transformation and parent cell ID
|
||||
|
|
@ -378,23 +382,23 @@ class RdbCategory:
|
|||
@return The category ID
|
||||
"""
|
||||
@overload
|
||||
def scan_collection(self, cell: RdbCell, trans: db.CplxTrans, edge_pairs: db.EdgePairs, flat: Optional[bool] = ...) -> None:
|
||||
def scan_collection(self, cell: RdbCell, trans: db.CplxTrans, edge_pairs: db.EdgePairs, flat: Optional[bool] = ..., with_properties: Optional[bool] = ...) -> None:
|
||||
r"""
|
||||
@brief Turns the given edge pair collection into a hierarchical or flat report database
|
||||
This a another flavour of \scan_collection accepting an edge pair collection.
|
||||
|
||||
This method has been introduced in version 0.26.
|
||||
This method has been introduced in version 0.26. The 'with_properties' argument has been added in version 0.28.
|
||||
"""
|
||||
@overload
|
||||
def scan_collection(self, cell: RdbCell, trans: db.CplxTrans, edges: db.Edges, flat: Optional[bool] = ...) -> None:
|
||||
def scan_collection(self, cell: RdbCell, trans: db.CplxTrans, edges: db.Edges, flat: Optional[bool] = ..., with_properties: Optional[bool] = ...) -> None:
|
||||
r"""
|
||||
@brief Turns the given edge collection into a hierarchical or flat report database
|
||||
This a another flavour of \scan_collection accepting an edge collection.
|
||||
|
||||
This method has been introduced in version 0.26.
|
||||
This method has been introduced in version 0.26. The 'with_properties' argument has been added in version 0.28.
|
||||
"""
|
||||
@overload
|
||||
def scan_collection(self, cell: RdbCell, trans: db.CplxTrans, region: db.Region, flat: Optional[bool] = ...) -> None:
|
||||
def scan_collection(self, cell: RdbCell, trans: db.CplxTrans, region: db.Region, flat: Optional[bool] = ..., with_properties: Optional[bool] = ...) -> None:
|
||||
r"""
|
||||
@brief Turns the given region into a hierarchical or flat report database
|
||||
The exact behavior depends on the nature of the region. If the region is a hierarchical (original or deep) region and the 'flat' argument is false, this method will produce a hierarchical report database in the given category. The 'cell_id' parameter is ignored in this case. Sample references will be produced to supply minimal instantiation information.
|
||||
|
|
@ -403,30 +407,19 @@ class RdbCategory:
|
|||
|
||||
The transformation argument needs to supply the dbu-to-micron transformation.
|
||||
|
||||
This method has been introduced in version 0.26.
|
||||
"""
|
||||
@overload
|
||||
def scan_layer(self, layout: db.Layout, layer: int) -> None:
|
||||
r"""
|
||||
@brief Scans a layer from a layout into this category
|
||||
Creates RDB items for each polygon or edge shape read from the each cell in the layout on the given layer and puts them into this category.
|
||||
New cells will be generated for every cell encountered in the layout.
|
||||
Other settings like database unit, description, top cell etc. are not made in the RDB.
|
||||
If 'with_properties' is true, user properties will be turned into tagged values as well.
|
||||
|
||||
This method has been introduced in version 0.23.
|
||||
This method has been introduced in version 0.26. The 'with_properties' argument has been added in version 0.28.
|
||||
"""
|
||||
@overload
|
||||
def scan_layer(self, layout: db.Layout, layer: int, cell: db.Cell) -> None:
|
||||
def scan_collection(self, cell: RdbCell, trans: db.CplxTrans, texts: db.Texts, flat: Optional[bool] = ..., with_properties: Optional[bool] = ...) -> None:
|
||||
r"""
|
||||
@brief Scans a layer from a layout into this category, starting with a given cell
|
||||
Creates RDB items for each polygon or edge shape read from the cell and it's children in the layout on the given layer and puts them into this category.
|
||||
New cells will be generated when required.
|
||||
Other settings like database unit, description, top cell etc. are not made in the RDB.
|
||||
@brief Turns the given edge pair collection into a hierarchical or flat report database
|
||||
This a another flavour of \scan_collection accepting a text collection.
|
||||
|
||||
This method has been introduced in version 0.23.
|
||||
This method has been introduced in version 0.28.
|
||||
"""
|
||||
@overload
|
||||
def scan_layer(self, layout: db.Layout, layer: int, cell: db.Cell, levels: int) -> None:
|
||||
def scan_layer(self, layout: db.Layout, layer: int, cell: Optional[db.Cell] = ..., levels: Optional[int] = ..., with_properties: Optional[bool] = ...) -> None:
|
||||
r"""
|
||||
@brief Scans a layer from a layout into this category, starting with a given cell and a depth specification
|
||||
Creates RDB items for each polygon or edge shape read from the cell and it's children in the layout on the given layer and puts them into this category.
|
||||
|
|
@ -434,16 +427,20 @@ class RdbCategory:
|
|||
"levels" is the number of hierarchy levels to take the child cells from. 0 means to use only "cell" and don't descend, -1 means "all levels".
|
||||
Other settings like database unit, description, top cell etc. are not made in the RDB.
|
||||
|
||||
This method has been introduced in version 0.23.
|
||||
If 'with_properties' is true, user properties will be turned into tagged values as well.
|
||||
|
||||
This method has been introduced in version 0.23. The 'with_properties' argument has been added in version 0.28.
|
||||
"""
|
||||
def scan_shapes(self, iter: db.RecursiveShapeIterator, flat: Optional[bool] = ...) -> None:
|
||||
def scan_shapes(self, iter: db.RecursiveShapeIterator, flat: Optional[bool] = ..., with_properties: Optional[bool] = ...) -> None:
|
||||
r"""
|
||||
@brief Scans the polygon or edge shapes from the shape iterator into the category
|
||||
Creates RDB items for each polygon or edge shape read from the iterator and puts them into this category.
|
||||
A similar, but lower-level method is \ReportDatabase#create_items with a \RecursiveShapeIterator argument.
|
||||
In contrast to \ReportDatabase#create_items, 'scan_shapes' can also produce hierarchical databases if the \flat argument is false. In this case, the hierarchy the recursive shape iterator traverses is copied into the report database using sample references.
|
||||
|
||||
This method has been introduced in version 0.23. The flat mode argument has been added in version 0.26.
|
||||
If 'with_properties' is true, user properties will be turned into tagged values as well.
|
||||
|
||||
This method has been introduced in version 0.23. The flat mode argument has been added in version 0.26. The 'with_properties' argument has been added in version 0.28.
|
||||
"""
|
||||
|
||||
class RdbItemValue:
|
||||
|
|
@ -533,6 +530,10 @@ class RdbItemValue:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> RdbItemValue:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
@overload
|
||||
def __init__(self, b: db.DBox) -> None:
|
||||
r"""
|
||||
|
|
@ -782,6 +783,10 @@ class RdbItem:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> RdbItem:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -1146,31 +1151,33 @@ class ReportDatabase:
|
|||
A more convenient method that takes cell and category objects instead of ID's is the other version of \create_item.
|
||||
"""
|
||||
@overload
|
||||
def create_item(self, cell_id: int, category_id: int, trans: db.CplxTrans, shape: db.Shape) -> None:
|
||||
def create_item(self, cell_id: int, category_id: int, trans: db.CplxTrans, shape: db.Shape, with_properties: Optional[bool] = ...) -> None:
|
||||
r"""
|
||||
@brief Creates a new item from a single shape
|
||||
This method produces an item from the given shape.
|
||||
It accepts various kind of shapes, such as texts, polygons, boxes and paths and converts them to a corresponding item. The transformation argument can be used to supply the transformation that applies the database unit for example.
|
||||
|
||||
This method has been introduced in version 0.25.3.
|
||||
This method has been introduced in version 0.25.3. The 'with_properties' argument has been added in version 0.28.
|
||||
|
||||
@param cell_id The ID of the cell to which the item is associated
|
||||
@param category_id The ID of the category to which the item is associated
|
||||
@param shape The shape to take the geometrical object from
|
||||
@param trans The transformation to apply
|
||||
@param with_properties If true, user properties will be turned into tagged values as well
|
||||
"""
|
||||
@overload
|
||||
def create_items(self, cell_id: int, category_id: int, iter: db.RecursiveShapeIterator) -> None:
|
||||
def create_items(self, cell_id: int, category_id: int, iter: db.RecursiveShapeIterator, with_properties: Optional[bool] = ...) -> None:
|
||||
r"""
|
||||
@brief Creates new items from a shape iterator
|
||||
This method takes the shapes from the given iterator and produces items from them.
|
||||
It accepts various kind of shapes, such as texts, polygons, boxes and paths and converts them to corresponding items. This method will produce a flat version of the shapes iterated by the shape iterator. A similar method, which is intended for production of polygon or edge error layers and also provides hierarchical database construction is \RdbCategory#scan_shapes.
|
||||
|
||||
This method has been introduced in version 0.25.3.
|
||||
This method has been introduced in version 0.25.3. The 'with_properties' argument has been added in version 0.28.
|
||||
|
||||
@param cell_id The ID of the cell to which the item is associated
|
||||
@param category_id The ID of the category to which the item is associated
|
||||
@param iter The iterator (a \RecursiveShapeIterator object) from which to take the items
|
||||
@param with_properties If true, user properties will be turned into tagged values as well
|
||||
"""
|
||||
@overload
|
||||
def create_items(self, cell_id: int, category_id: int, trans: db.CplxTrans, array: Sequence[db.EdgePair]) -> None:
|
||||
|
|
@ -1223,7 +1230,7 @@ class ReportDatabase:
|
|||
|
||||
This method will also produce a flat version of the edge pairs inside the edge pair collection. \RdbCategory#scan_collection is a similar method which also supports construction of hierarchical databases from deep edge pair collections.
|
||||
|
||||
This method has been introduced in version 0.23.
|
||||
This method has been introduced in version 0.23. It has been deprecated in favor of \RdbCategory#scan_collection in version 0.28.
|
||||
|
||||
@param cell_id The ID of the cell to which the item is associated
|
||||
@param category_id The ID of the category to which the item is associated
|
||||
|
|
@ -1239,7 +1246,7 @@ class ReportDatabase:
|
|||
|
||||
This method will also produce a flat version of the edges inside the edge collection. \RdbCategory#scan_collection is a similar method which also supports construction of hierarchical databases from deep edge collections.
|
||||
|
||||
This method has been introduced in version 0.23.
|
||||
This method has been introduced in version 0.23. It has been deprecated in favor of \RdbCategory#scan_collection in version 0.28.
|
||||
|
||||
@param cell_id The ID of the cell to which the item is associated
|
||||
@param category_id The ID of the category to which the item is associated
|
||||
|
|
@ -1255,7 +1262,7 @@ class ReportDatabase:
|
|||
|
||||
This method will also produce a flat version of the shapes inside the region. \RdbCategory#scan_collection is a similar method which also supports construction of hierarchical databases from deep regions.
|
||||
|
||||
This method has been introduced in version 0.23.
|
||||
This method has been introduced in version 0.23. It has been deprecated in favor of \RdbCategory#scan_collection in version 0.28.
|
||||
|
||||
@param cell_id The ID of the cell to which the item is associated
|
||||
@param category_id The ID of the category to which the item is associated
|
||||
|
|
@ -1263,18 +1270,19 @@ class ReportDatabase:
|
|||
@param region The region (a \Region object) containing the polygons for which to create items
|
||||
"""
|
||||
@overload
|
||||
def create_items(self, cell_id: int, category_id: int, trans: db.CplxTrans, shapes: db.Shapes) -> None:
|
||||
def create_items(self, cell_id: int, category_id: int, trans: db.CplxTrans, shapes: db.Shapes, with_properties: Optional[bool] = ...) -> None:
|
||||
r"""
|
||||
@brief Creates new items from a shape container
|
||||
This method takes the shapes from the given container and produces items from them.
|
||||
It accepts various kind of shapes, such as texts, polygons, boxes and paths and converts them to corresponding items. The transformation argument can be used to supply the transformation that applies the database unit for example.
|
||||
|
||||
This method has been introduced in version 0.25.3.
|
||||
This method has been introduced in version 0.25.3. The 'with_properties' argument has been added in version 0.28.
|
||||
|
||||
@param cell_id The ID of the cell to which the item is associated
|
||||
@param category_id The ID of the category to which the item is associated
|
||||
@param shapes The shape container from which to take the items
|
||||
@param trans The transformation to apply
|
||||
@param with_properties If true, user properties will be turned into tagged values as well
|
||||
"""
|
||||
def destroy(self) -> None:
|
||||
r"""
|
||||
|
|
|
|||
|
|
@ -12,6 +12,10 @@ class EmptyClass:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> EmptyClass:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -116,6 +120,10 @@ class Value:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> Value:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
@overload
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
|
|
@ -402,6 +410,10 @@ class ArgType:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> ArgType:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __eq__(self, arg0: object) -> bool:
|
||||
r"""
|
||||
@brief Equality of two types
|
||||
|
|
@ -568,6 +580,10 @@ class MethodOverload:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> MethodOverload:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -675,6 +691,10 @@ class Method:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> Method:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -1012,6 +1032,10 @@ class Logger:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> Logger:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -1119,6 +1143,10 @@ class Timer:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> Timer:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -1336,6 +1364,10 @@ class AbstractProgress(Progress):
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> AbstractProgress:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self, desc: str) -> None:
|
||||
r"""
|
||||
@brief Creates an abstract progress reporter with the given description
|
||||
|
|
@ -1446,6 +1478,10 @@ class RelativeProgress(Progress):
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> RelativeProgress:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
@overload
|
||||
def __init__(self, desc: str, max_value: int) -> None:
|
||||
r"""
|
||||
|
|
@ -1600,6 +1636,10 @@ class AbsoluteProgress(Progress):
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> AbsoluteProgress:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
@overload
|
||||
def __init__(self, desc: str) -> None:
|
||||
r"""
|
||||
|
|
@ -1691,6 +1731,10 @@ class ExpressionContext:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> ExpressionContext:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -1903,6 +1947,10 @@ class GlobPattern:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> GlobPattern:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self, pattern: str) -> None:
|
||||
r"""
|
||||
@brief Creates a new glob pattern match object
|
||||
|
|
@ -1995,6 +2043,10 @@ class ExecutableBase:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> ExecutableBase:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -2246,6 +2298,10 @@ class PythonGetterSetterPair:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> PythonGetterSetterPair:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
@ -2340,6 +2396,10 @@ class PythonFunction:
|
|||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __deepcopy__(self) -> PythonFunction:
|
||||
r"""
|
||||
@brief Creates a copy of self
|
||||
"""
|
||||
def __init__(self) -> None:
|
||||
r"""
|
||||
@brief Creates a new object of this class
|
||||
|
|
|
|||
|
|
@ -626,7 +626,7 @@ class Ant_TestClass < TestBase
|
|||
def test_5
|
||||
|
||||
lv = RBA::LayoutView::new
|
||||
lv.set_config("ruler-templates", "mode=normal,title=Ruler,category=_ruler,fmt=$D,fmt_x=$X,fmt_y=$Y,position=auto,xalign=auto,yalign=auto,xlabel_xalign=auto,xlabel_yalign=auto,ylabel_xalign=auto,ylabel_yalign=auto,style=ruler,outline=diag,snap=true,angle_constraint=global")
|
||||
lv.set_config("ruler-templates-v2", "mode=normal,title=Ruler,category=_ruler,fmt=$D,fmt_x=$X,fmt_y=$Y,position=auto,xalign=auto,yalign=auto,xlabel_xalign=auto,xlabel_yalign=auto,ylabel_xalign=auto,ylabel_yalign=auto,style=ruler,outline=diag,snap=true,angle_constraint=global")
|
||||
tpl = lv.annotation_templates
|
||||
assert_equal(tpl.size, 1)
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
KLAYOUT_VERSION="0.28"
|
||||
|
||||
# The version used for PyPI (don't use variables here!)
|
||||
KLAYOUT_PYPI_VERSION="0.28"
|
||||
KLAYOUT_PYPI_VERSION="0.28-1"
|
||||
|
||||
# The build date
|
||||
KLAYOUT_VERSION_DATE=$(date "+%Y-%m-%d")
|
||||
|
|
|
|||
Loading…
Reference in New Issue