diff --git a/scripts/create_drc_samples.rb b/scripts/create_drc_samples.rb index 962c026ac..b8ea6665a 100644 --- a/scripts/create_drc_samples.rb +++ b/scripts/create_drc_samples.rb @@ -2,9 +2,45 @@ # Run with: # ./klayout -z -r ./create_drc_samples.rb -t -c klayoutrc_drc_samples +class QRCGenerator + + def res_path + "src/lay/lay" + end + + def img_path + "doc/images" + end + + def initialize + @path = res_path + "/" + "layDRCLVSHelpResources.qrc" + @file = File.open(@path, "w") + @file.puts("") + @file.puts(" ") + end + + def <<(str) + @file.puts(str) + end + + def finish + @file.puts(" ") + @file.puts("") + @file.close + puts "---> resource file written to #{@path}" + end + + def self.instance + @@inst ||= QRCGenerator::new + @@inst + end + +end + def run_demo(gen, cmd, out) - img_path = "src/lay/lay/doc/images" + res_path = QRCGenerator::instance.res_path + img_path = QRCGenerator::instance.img_path mw = RBA::Application::instance::main_window @@ -81,7 +117,9 @@ def run_demo(gen, cmd, out) input1 = input(1, 0) input = input1 input2 = input(2, 0) - #{cmd}.data + labels1 = labels(1, 0) + labels = labels1 + (#{cmd}).data SCRIPT if data.is_a?(RBA::Region) @@ -101,15 +139,19 @@ SCRIPT elsif data.is_a?(RBA::EdgePairs) cell.shapes(lout_poly).insert_as_polygons(data, 1) cell.shapes(lout).insert(data.edges) + elsif data.is_a?(RBA::Texts) + cell.shapes(lout).insert(data) end view.update_content - view.save_image(img_path + "/" + out, 400, 400) + view.save_image(res_path + "/" + img_path + "/" + out, 400, 400) - puts "---> written #{img_path}/#{out}" + puts "---> written #{res_path}/#{img_path}/#{out}" mw.close_all + QRCGenerator::instance << " #{img_path}/#{out}" + end class Gen @@ -631,3 +673,41 @@ run_demo gen, "input.corners.sized(0.1)", "drc_corners1.png" run_demo gen, "input.corners(90.0).sized(0.1)", "drc_corners2.png" run_demo gen, "input.corners(-90.0 .. -45.0).sized(0.1)", "drc_corners3.png" + +class Gen + def produce(s1, s2) + s1.insert(RBA::Text::new("ABC", RBA::Trans::new(RBA::Vector::new(0, 2000)))) + s1.insert(RBA::Text::new("A", RBA::Trans::new(RBA::Vector::new(0, 6000)))) + s1.insert(RBA::Text::new("XYZ", RBA::Trans::new(RBA::Vector::new(4000, 2000)))) + s1.insert(RBA::Text::new("A*", RBA::Trans::new(RBA::Vector::new(4000, 6000)))) + end +end + +gen = Gen::new + +run_demo gen, "labels.texts(\"A*\")", "drc_texts1.png" +run_demo gen, "labels.texts(text(\"A*\"))", "drc_texts2.png" + +class Gen + def produce(s1, s2) + s1.insert(RBA::Text::new("T1", RBA::Trans::new(RBA::Vector::new(0, 2000)))) + s1.insert(RBA::Text::new("T2", RBA::Trans::new(RBA::Vector::new(2000, 2000)))) + s1.insert(RBA::Text::new("T3", RBA::Trans::new(RBA::Vector::new(4000, 2000)))) + pts = [ + RBA::Point::new(2000, 0), + RBA::Point::new(2000, 4000), + RBA::Point::new(6000, 4000), + RBA::Point::new(6000, 0) + ]; + s2.insert(RBA::Polygon::new(pts)) + end +end + +gen = Gen::new + +run_demo gen, "labels & input2", "drc_textpoly1.png" +run_demo gen, "labels - input2", "drc_textpoly2.png" + + +QRCGenerator::instance.finish + diff --git a/src/db/db/gsiDeclDbShapes.cc b/src/db/db/gsiDeclDbShapes.cc index cf2e175de..2dff334b9 100644 --- a/src/db/db/gsiDeclDbShapes.cc +++ b/src/db/db/gsiDeclDbShapes.cc @@ -419,6 +419,29 @@ static void insert_edge_pairs_with_dtrans (db::Shapes *sh, const db::EdgePairs & } } +static void insert_texts (db::Shapes *sh, const db::Texts &r) +{ + for (db::Texts::const_iterator s = r.begin (); ! s.at_end (); ++s) { + sh->insert (*s); + } +} + +static void insert_texts_with_trans (db::Shapes *sh, const db::Texts &r, const db::ICplxTrans &trans) +{ + for (db::Texts::const_iterator s = r.begin (); ! s.at_end (); ++s) { + sh->insert (s->transformed (trans)); + } +} + +static void insert_texts_with_dtrans (db::Shapes *sh, const db::Texts &r, const db::DCplxTrans &trans) +{ + db::CplxTrans dbu_trans (shapes_dbu (sh)); + db::ICplxTrans itrans = dbu_trans.inverted () * trans * dbu_trans; + for (db::Texts::const_iterator s = r.begin (); ! s.at_end (); ++s) { + sh->insert (s->transformed (itrans)); + } +} + static unsigned int s_all () { return db::ShapeIterator::All; } static unsigned int s_all_with_properties () { return db::ShapeIterator::AllWithProperties; } static unsigned int s_properties () { return db::ShapeIterator::Properties; } @@ -599,7 +622,7 @@ Class decl_Shapes ("db", "Shapes", "@param edges The edge pairs to insert\n" "@param trans The transformation to apply (displacement in micrometer units)\n" "\n" - "This method inserts all edge pairs from the edge collection into this shape container.\n" + "This method inserts all edge pairs from the edge pair collection into this shape container.\n" "Before an edge pair is inserted, the given transformation is applied.\n" "\n" "This method has been introduced in version 0.26.\n" @@ -682,6 +705,34 @@ Class decl_Shapes ("db", "Shapes", "\n" "This method has been introduced in version 0.25.\n" ) + + gsi::method_ext ("insert", &insert_texts, gsi::arg ("texts"), + "@brief Inserts the texts from the text collection into this shape container\n" + "@param texts The texts to insert\n" + "\n" + "This method inserts all texts from the text collection into this shape container.\n" + "\n" + "This method has been introduced in version 0.27.\n" + ) + + gsi::method_ext ("insert", &insert_texts_with_trans, gsi::arg ("texts"), gsi::arg ("trans"), + "@brief Inserts the texts from the text collection into this shape container with a transformation\n" + "@param edges The texts to insert\n" + "@param trans The transformation to apply\n" + "\n" + "This method inserts all texts from the text collection into this shape container.\n" + "Before an text is inserted, the given transformation is applied.\n" + "\n" + "This method has been introduced in version 0.27.\n" + ) + + gsi::method_ext ("insert", &insert_texts_with_dtrans, gsi::arg ("texts"), gsi::arg ("trans"), + "@brief Inserts the texts from the text collection into this shape container with a transformation (given in micrometer units)\n" + "@param edges The text to insert\n" + "@param trans The transformation to apply (displacement in micrometer units)\n" + "\n" + "This method inserts all texts from the text collection into this shape container.\n" + "Before an text is inserted, the given transformation is applied.\n" + "\n" + "This method has been introduced in version 0.27.\n" + ) + gsi::method_ext ("transform", &transform_shapes, gsi::arg ("trans"), "@brief Transforms all shapes with the given transformation\n" "This method will invalidate all references to shapes inside this collection.\n\n" diff --git a/src/drc/drc/built-in-macros/_drc_layer.rb b/src/drc/drc/built-in-macros/_drc_layer.rb index 4f90e01f9..b6fc6802b 100644 --- a/src/drc/drc/built-in-macros/_drc_layer.rb +++ b/src/drc/drc/built-in-macros/_drc_layer.rb @@ -593,9 +593,11 @@ CODE # selected text. By using the "as_dots" option, degenerated point-like edges will be # produced. # - # This method can also be applied to true text layers obtained with \labels. + # The preferred method however is to use true text layers created with \labels. # In this case, without specifying "as_dots" or "as_boxes" retains the text - # objects as such. Only text filtering is applied. + # 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 + # 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 # glob-style pattern. By default, glob-style pattern are used. @@ -612,14 +614,22 @@ CODE # # @code # # Selects all texts - # t = input(1, 0).texts + # t = labels(1, 0).texts # # Selects all texts beginning with an "A" - # t = input(1, 0).texts("A*") - # t = input(1, 0).texts(pattern("A*")) - # # Selects all texts whose string is "A*" - # t = input(1, 0).texts(text("A*")) + # t = labels(1, 0).texts("A*") + # t = labels(1, 0).texts(pattern("A*")) + # # Selects all texts whose string is "ABC" + # t = labels(1, 0).texts(text("ABC")) # @/code - # + # + # The effect of the operation is shown in these examples: + # + # @table + # @tr + # @td @img(/images/drc_texts1.png) @/td + # @td @img(/images/drc_texts2.png) @/td + # @/tr + # @/table def texts(*args) requires_texts_or_region("texts") @@ -1168,7 +1178,7 @@ CODE # borders of the polygons of the second operand. # # The following images show the effect of the "and" method - # on polygons and edges (layer1: red, layer2: blue): + # on polygons and edges (input1: red, input2: blue): # # @table # @tr @@ -1177,6 +1187,16 @@ CODE # @td @img(/images/drc_and3.png) @/td # @/tr # @/table + # + # The AND operation can be applied between a text and a polygon + # layer. In this case, the texts inside or at the border of the + # polygons will be written to the output (labels: red, input2: blue): + # + # @table + # @tr + # @td @img(/images/drc_textpoly1.png) @/td + # @/tr + # @/table def and(other) self & other @@ -1195,7 +1215,7 @@ CODE # of the second operand. # # The following images show the effect of the "not" method - # on polygons and edges (layer1: red, layer2: blue): + # on polygons and edges (input1: red, input2: blue): # # @table # @tr @@ -1204,6 +1224,16 @@ CODE # @td @img(/images/drc_not3.png) @/td # @/tr # @/table + # + # The NOT operation can be applied between a text and a polygon + # layer. In this case, the texts outside the polygons will be + # written to the output (labels: red, input2: blue): + # + # @table + # @tr + # @td @img(/images/drc_textpoly2.png) @/td + # @/tr + # @/table def not(other) self - other @@ -1219,7 +1249,7 @@ CODE # This method is available for polygon and edge layers. # # The following images show the effect of the "xor" method - # on polygons and edges (layer1: red, layer2: blue): + # on polygons and edges (input1: red, input2: blue): # # @table # @tr @@ -1242,7 +1272,7 @@ CODE # This method is available for polygon and edge layers. # # The following images show the effect of the "or" method - # on polygons and edges (layer1: red, layer2: blue): + # on polygons and edges (input1: red, input2: blue): # # @table # @tr @@ -1265,7 +1295,7 @@ CODE # This method is available for polygon, edge and edge pair layers. # # The following images show the effect of the "join" method - # on polygons and edges (layer1: red, layer2: blue): + # on polygons and edges (input1: red, input2: blue): # # @table # @tr @@ -1587,8 +1617,9 @@ CODE # It returns a new layer containing the selected shapes. A version which modifies self # is \select_interacting. # - # This method is available for polygon and edge layers. Edges can be selected - # with respect to other edges or polygons. + # 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. # # The following image shows the effect of the "interacting" method (input1: red, input2: blue): # @@ -2502,7 +2533,7 @@ CODE # Distance values can be given as floating-point values (in micron) or integer values (in # database units). To explicitly specify the unit, use the unit denominators. # - # The following image shows the effect of the separation check (layer1: red, layer2: blue): + # The following image shows the effect of the separation check (input1: red, input2: blue): # # @table # @tr @@ -2537,7 +2568,7 @@ CODE # Distance values can be given as floating-point values (in micron) or integer values (in # database units). To explicitly specify the unit, use the unit denominators. # - # The following images show the effect of the overlap check (layer1: red, layer2: blue): + # The following images show the effect of the overlap check (input1: red, input2: blue): # # @table # @tr diff --git a/src/drc/drc/built-in-macros/_drc_netter.rb b/src/drc/drc/built-in-macros/_drc_netter.rb index e40229d4e..bfc95d8cc 100644 --- a/src/drc/drc/built-in-macros/_drc_netter.rb +++ b/src/drc/drc/built-in-macros/_drc_netter.rb @@ -76,13 +76,19 @@ module DRC # @name connect # @brief Specifies a connection between two layers # @synopsis connect(a, b) - # a and b must be polygon layers. After calling this function, the + # a and b must be polygon or text layers. After calling this function, the # Netter regards all overlapping or touching shapes on these layers # to form an electrical connection between the materials formed by # these layers. This also implies intra-layer connections: shapes # on these layers touching or overlapping other shapes on these # 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 + # with the polygons but at the cost of small dummy shapes (2x2 DBU + # marker polygons) and limited functionality. + # # Multiple connect calls must be made to form larger connectivity # stacks across multiple layers. Such stacks may include forks and # joins. @@ -112,7 +118,7 @@ module DRC # Connects the shapes from the given layer l to a global net with the given name. # Global nets are common to all cells. Global nets automatically connect to parent # cells throughs implied pins. An example is the substrate (bulk) net which connects - # to shapes belonging to tie-down diodes. + # to shapes belonging to tie-down diodes. "l" can be a polygon or text layer. def connect_global(l, name) diff --git a/src/lay/lay/doc/about/drc_ref_global.xml b/src/lay/lay/doc/about/drc_ref_global.xml index 7e4be95ba..5cf550238 100644 --- a/src/lay/lay/doc/about/drc_ref_global.xml +++ b/src/lay/lay/doc/about/drc_ref_global.xml @@ -362,6 +362,24 @@ This function creates an edge object. The arguments are the same than for the The intention of that method is to create an empty layer which can be filled with edge objects using Layer#insert.

+

"edge_pairs" - Gets the edges from an original layer

+ +

Usage:

+
    +
  • edge_pairs(args)
  • +
+

+See Source#edge_pairs for a description of that function. +

+

"edges" - Gets the edges from an original layer

+ +

Usage:

+
    +
  • edges(args)
  • +
+

+See Source#edges for a description of that function. +

"error" - Prints an error

Usage:

@@ -446,7 +464,7 @@ See
Netter#l2n_data for a descr

Usage:

    -
  • labels
  • +
  • labels(args)

See Source#labels for a description of that function. diff --git a/src/lay/lay/doc/about/drc_ref_layer.xml b/src/lay/lay/doc/about/drc_ref_layer.xml index d7287b733..2f29c1d58 100644 --- a/src/lay/lay/doc/about/drc_ref_layer.xml +++ b/src/lay/lay/doc/about/drc_ref_layer.xml @@ -76,7 +76,7 @@ result will be the edges of the first operand which are inside or on the borders of the polygons of the second operand.

The following images show the effect of the "and" method -on polygons and edges (layer1: red, layer2: blue): +on polygons and edges (input1: red, input2: blue):

@@ -85,6 +85,16 @@ on polygons and edges (layer1: red, layer2: blue):
+

+The AND operation can be applied between a text and a polygon +layer. In this case, the texts inside or at the border of the +polygons will be written to the output (labels: red, input2: blue): +

+ + + + +

"area" - Returns the total area of the polygons in the region

@@ -594,7 +604,7 @@ Returns the first edges of the edge pairs in the collection. If the layer already is a flat one, this method does nothing. If the layer is a hierarchical layer (an original layer or a derived layer in deep mode), this method will convert it -to a flat collection of polygons, edges or edge pairs. +to a flat collection of texts, polygons, edges or edge pairs.

"holes" - Selects all polygon holes from the input

@@ -740,8 +750,9 @@ otherwise individual shapes are selected. It returns a new layer containing the selected shapes. A version which modifies self is
select_interacting.

-This method is available for polygon and edge layers. Edges can be selected -with respect to other edges or polygons. +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.

The following image shows the effect of the "interacting" method (input1: red, input2: blue):

@@ -860,7 +871,7 @@ It is an alias for the "+" operator. This method is available for polygon, edge and edge pair layers.

The following images show the effect of the "join" method -on polygons and edges (layer1: red, layer2: blue): +on polygons and edges (input1: red, input2: blue):

@@ -1030,7 +1041,7 @@ result will be the edges of the first operand which are outside the polygons of the second operand.

The following images show the effect of the "not" method -on polygons and edges (layer1: red, layer2: blue): +on polygons and edges (input1: red, input2: blue):

@@ -1039,6 +1050,16 @@ on polygons and edges (layer1: red, layer2: blue):
+

+The NOT operation can be applied between a text and a polygon +layer. In this case, the texts outside the polygons will be +written to the output (labels: red, input2: blue): +

+ + + + +

"not_in" - Selects shapes or regions of self which are not contained in the other layer

@@ -1216,7 +1237,7 @@ It is an alias for the "|" operator. This method is available for polygon and edge layers.

The following images show the effect of the "or" method -on polygons and edges (layer1: red, layer2: blue): +on polygons and edges (input1: red, input2: blue):

@@ -1318,7 +1339,7 @@ are the same than for width. Distance values can be given as floating-point values (in micron) or integer values (in database units). To explicitly specify the unit, use the unit denominators.

-The following images show the effect of the overlap check (layer1: red, layer2: blue): +The following images show the effect of the overlap check (input1: red, input2: blue):

@@ -1766,7 +1787,7 @@ are the same than for width. Distance values can be given as floating-point values (in micron) or integer values (in database units). To explicitly specify the unit, use the unit denominators.

-The following image shows the effect of the separation check (layer1: red, layer2: blue): +The following image shows the effect of the separation check (input1: red, input2: blue):

@@ -1985,6 +2006,12 @@ been created with input. By default, a small box (2x2 DBU) 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. +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 +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 glob-style pattern. By default, glob-style pattern are used. The options available are: @@ -2000,13 +2027,38 @@ Here are some examples:

 # Selects all texts
-t = input(1, 0).texts
+t = labels(1, 0).texts
 # Selects all texts beginning with an "A"
-t = input(1, 0).texts("A*")
-t = input(1, 0).texts(pattern("A*"))
-# Selects all texts whose string is "A*"
-t = input(1, 0).texts(text("A*"))
+t = labels(1, 0).texts("A*")
+t = labels(1, 0).texts(pattern("A*"))
+# Selects all texts whose string is "ABC"
+t = labels(1, 0).texts(text("ABC"))
 
+

+The effect of the operation is shown in these examples: +

+

+ + + + +
+

+

"texts_not" - Selects texts from an original layer not matching a specific selection

+ +

Usage:

+
    +
  • layer.texts_not
  • +
  • layer.texts_not(p)
  • +
  • layer.texts_not([ options ])
  • +
+

+This method can be applied to true text layers obtained with labels. +In this case, without specifying "as_dots" or "as_boxes" retains the text +objects as such. Only text filtering is applied. +

+Beside that this method acts like texts, but will select the text objects +not matching the filter.

"transform" - Transforms a layer (modifies the layer)

@@ -2388,7 +2440,7 @@ It is an alias for the "^" operator. This method is available for polygon and edge layers.

The following images show the effect of the "xor" method -on polygons and edges (layer1: red, layer2: blue): +on polygons and edges (input1: red, input2: blue):

diff --git a/src/lay/lay/doc/about/drc_ref_netter.xml b/src/lay/lay/doc/about/drc_ref_netter.xml index c56e060df..a08620943 100644 --- a/src/lay/lay/doc/about/drc_ref_netter.xml +++ b/src/lay/lay/doc/about/drc_ref_netter.xml @@ -153,13 +153,19 @@ See connect for more details.
  • connect(a, b)
  • -a and b must be polygon layers. After calling this function, the +a and b must be polygon or text layers. After calling this function, the Netter regards all overlapping or touching shapes on these layers to form an electrical connection between the materials formed by these layers. This also implies intra-layer connections: shapes on these layers touching or overlapping other shapes on these 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 +with the polygons but at the cost of small dummy shapes (2x2 DBU +marker polygons) and limited functionality. +

    Multiple connect calls must be made to form larger connectivity stacks across multiple layers. Such stacks may include forks and joins. @@ -177,7 +183,7 @@ can be cleared with clear_connections. Connects the shapes from the given layer l to a global net with the given name. Global nets are common to all cells. Global nets automatically connect to parent cells throughs implied pins. An example is the substrate (bulk) net which connects -to shapes belonging to tie-down diodes. +to shapes belonging to tie-down diodes. "l" can be a polygon or text layer.

    "connect_implicit" - Specifies a search pattern for labels which create implicit net connections

    diff --git a/src/lay/lay/doc/about/drc_ref_source.xml b/src/lay/lay/doc/about/drc_ref_source.xml index a620c0b4b..d30545115 100644 --- a/src/lay/lay/doc/about/drc_ref_source.xml +++ b/src/lay/lay/doc/about/drc_ref_source.xml @@ -54,6 +54,48 @@ This method will create a new source which delivers the shapes from that region clipped to the rectangle. A method doing the same but without clipping is
    touching or overlapping.

    +

    "edge_pairs" - Gets the edge pairs from an input layer

    + +

    Usage:

    +
      +
    • source.edge_pairs(layer)
    • +
    • source.edge_pairs(layer, datatype)
    • +
    • source.edge_pairs(layer_into)
    • +
    • source.edge_pairs(filter, ...)
    • +
    +

    +Creates a layer with the edge_pairs from the given layer of the source. +Edge pairs are not supported by layout formats so far. So except if the source is +a custom-built layout object, this method has little use. It is provided for future +extensions which may include edge pairs in file streams. +

    +This method is identical to input with respect to the options supported. +

    +Use the global version of "edge_pairs" without a source object to address the default source. +

    +This method has been introduced in version 0.27. +

    +

    "edges" - Gets the edge shapes (or shapes that can be converted edges) from an input layer

    + +

    Usage:

    +
      +
    • source.edges(layer)
    • +
    • source.edges(layer, datatype)
    • +
    • source.edges(layer_into)
    • +
    • source.edges(filter, ...)
    • +
    +

    +Creates a layer with the edges from the given layer of the source. +Edge layers are formed from shapes by decomposing the shapes into edges: polygons +for example are decomposed into their outline edges. Some file formats support egdes +as native objects. +

    +This method is identical to input with respect to the options supported. +

    +Use the global version of "edges" without a source object to address the default source. +

    +This method has been introduced in version 0.27. +

    "extent" - Returns a layer with the bounding box of the selected layout

    Usage:

    @@ -95,7 +137,7 @@ Some filter expressions are: not have names)

    -Layers created with "input" contain both texts and polygons. There is a subtle +Layers created with "input" may contain both texts (labels) and polygons. There is a subtle difference between flat and deep mode: in flat mode, texts are not visible in polygon operations. In deep mode, texts appear as small 2x2 DBU rectangles. In flat mode, some operations such as clipping are not fully supported for texts. Also, texts will @@ -106,6 +148,11 @@ Texts can later be selected on the layer returned by "input" with the polygons to create an input layer with polygon data only. If you only want to see texts, use labels to create an input layer with texts only.

    +labels also produces a true "text layer" which contains text objects. A variety of +operations is available for these objects, such as boolean "and" and "not" with a polygon layer. +True text layers should be preferred over mixed polygon/text layers if text object processing +is required. +

    Use the global version of "input" without a source object to address the default source.

    "labels" - Gets the labels (texts) from an input layer

    @@ -118,10 +165,12 @@ Use the global version of "input" without a source object to address the default
  • source.labels(filter, ...)
  • -Creates a layer with the labels from the given layer of the source. +Creates a true text layer with the labels from the given layer of the source.

    This method is identical to input, but takes only texts from the given input -layer. +layer. Starting with version 0.27, the result is no longer a polygon layer that tries +to provide text support but a layer type which is provided for carrying text objects +explicitly.

    Use the global version of "labels" without a source object to address the default source.

    diff --git a/src/lay/lay/doc/images/drc_and1.png b/src/lay/lay/doc/images/drc_and1.png index 5964e1939..a0c736476 100644 Binary files a/src/lay/lay/doc/images/drc_and1.png and b/src/lay/lay/doc/images/drc_and1.png differ diff --git a/src/lay/lay/doc/images/drc_and2.png b/src/lay/lay/doc/images/drc_and2.png index f6a9cfe6b..8c99cc75e 100644 Binary files a/src/lay/lay/doc/images/drc_and2.png and b/src/lay/lay/doc/images/drc_and2.png differ diff --git a/src/lay/lay/doc/images/drc_and3.png b/src/lay/lay/doc/images/drc_and3.png index 08ba54228..4078a55a3 100644 Binary files a/src/lay/lay/doc/images/drc_and3.png and b/src/lay/lay/doc/images/drc_and3.png differ diff --git a/src/lay/lay/doc/images/drc_centers1.png b/src/lay/lay/doc/images/drc_centers1.png index 5f5b07296..9f7318210 100644 Binary files a/src/lay/lay/doc/images/drc_centers1.png and b/src/lay/lay/doc/images/drc_centers1.png differ diff --git a/src/lay/lay/doc/images/drc_centers2.png b/src/lay/lay/doc/images/drc_centers2.png index 65e267b7e..949971f74 100644 Binary files a/src/lay/lay/doc/images/drc_centers2.png and b/src/lay/lay/doc/images/drc_centers2.png differ diff --git a/src/lay/lay/doc/images/drc_corners1.png b/src/lay/lay/doc/images/drc_corners1.png index 461054bdf..f5782c1a6 100644 Binary files a/src/lay/lay/doc/images/drc_corners1.png and b/src/lay/lay/doc/images/drc_corners1.png differ diff --git a/src/lay/lay/doc/images/drc_corners2.png b/src/lay/lay/doc/images/drc_corners2.png index 24c48a316..36de46255 100644 Binary files a/src/lay/lay/doc/images/drc_corners2.png and b/src/lay/lay/doc/images/drc_corners2.png differ diff --git a/src/lay/lay/doc/images/drc_corners3.png b/src/lay/lay/doc/images/drc_corners3.png index ed6f97696..f0224dba8 100644 Binary files a/src/lay/lay/doc/images/drc_corners3.png and b/src/lay/lay/doc/images/drc_corners3.png differ diff --git a/src/lay/lay/doc/images/drc_enc1.png b/src/lay/lay/doc/images/drc_enc1.png index d4b448284..c0c25dc5f 100644 Binary files a/src/lay/lay/doc/images/drc_enc1.png and b/src/lay/lay/doc/images/drc_enc1.png differ diff --git a/src/lay/lay/doc/images/drc_enc2.png b/src/lay/lay/doc/images/drc_enc2.png index 27a38ac48..93c1b4c14 100644 Binary files a/src/lay/lay/doc/images/drc_enc2.png and b/src/lay/lay/doc/images/drc_enc2.png differ diff --git a/src/lay/lay/doc/images/drc_end_segments1.png b/src/lay/lay/doc/images/drc_end_segments1.png index e146be063..0c2c424ae 100644 Binary files a/src/lay/lay/doc/images/drc_end_segments1.png and b/src/lay/lay/doc/images/drc_end_segments1.png differ diff --git a/src/lay/lay/doc/images/drc_end_segments2.png b/src/lay/lay/doc/images/drc_end_segments2.png index 2bbf6f78b..cd56d40ec 100644 Binary files a/src/lay/lay/doc/images/drc_end_segments2.png and b/src/lay/lay/doc/images/drc_end_segments2.png differ diff --git a/src/lay/lay/doc/images/drc_extended1.png b/src/lay/lay/doc/images/drc_extended1.png index 04ae3e835..12db6370d 100644 Binary files a/src/lay/lay/doc/images/drc_extended1.png and b/src/lay/lay/doc/images/drc_extended1.png differ diff --git a/src/lay/lay/doc/images/drc_extended2.png b/src/lay/lay/doc/images/drc_extended2.png index 287ad4aa7..90816d5f8 100644 Binary files a/src/lay/lay/doc/images/drc_extended2.png and b/src/lay/lay/doc/images/drc_extended2.png differ diff --git a/src/lay/lay/doc/images/drc_extended3.png b/src/lay/lay/doc/images/drc_extended3.png index 185d601d0..330ed208a 100644 Binary files a/src/lay/lay/doc/images/drc_extended3.png and b/src/lay/lay/doc/images/drc_extended3.png differ diff --git a/src/lay/lay/doc/images/drc_extended4.png b/src/lay/lay/doc/images/drc_extended4.png index 6e24afc48..8caea794f 100644 Binary files a/src/lay/lay/doc/images/drc_extended4.png and b/src/lay/lay/doc/images/drc_extended4.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs1.png b/src/lay/lay/doc/images/drc_extent_refs1.png index 2ab241463..c32c46129 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs1.png and b/src/lay/lay/doc/images/drc_extent_refs1.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs10.png b/src/lay/lay/doc/images/drc_extent_refs10.png index 81a5603fe..2771cae38 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs10.png and b/src/lay/lay/doc/images/drc_extent_refs10.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs11.png b/src/lay/lay/doc/images/drc_extent_refs11.png index 9b3618059..f1feb7337 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs11.png and b/src/lay/lay/doc/images/drc_extent_refs11.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs12.png b/src/lay/lay/doc/images/drc_extent_refs12.png index f84556d24..1a9dae0b8 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs12.png and b/src/lay/lay/doc/images/drc_extent_refs12.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs13.png b/src/lay/lay/doc/images/drc_extent_refs13.png index d1ebc5eaa..4543ee821 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs13.png and b/src/lay/lay/doc/images/drc_extent_refs13.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs20.png b/src/lay/lay/doc/images/drc_extent_refs20.png index 170aa1b52..4b3a2c2e3 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs20.png and b/src/lay/lay/doc/images/drc_extent_refs20.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs21.png b/src/lay/lay/doc/images/drc_extent_refs21.png index 26efee149..cbb4fd30d 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs21.png and b/src/lay/lay/doc/images/drc_extent_refs21.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs22.png b/src/lay/lay/doc/images/drc_extent_refs22.png index 54581748d..0def07a46 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs22.png and b/src/lay/lay/doc/images/drc_extent_refs22.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs23.png b/src/lay/lay/doc/images/drc_extent_refs23.png index f3ad4bdca..4e44e294d 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs23.png and b/src/lay/lay/doc/images/drc_extent_refs23.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs24.png b/src/lay/lay/doc/images/drc_extent_refs24.png index 673df6948..35b36f9ae 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs24.png and b/src/lay/lay/doc/images/drc_extent_refs24.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs25.png b/src/lay/lay/doc/images/drc_extent_refs25.png index f3a0db1a2..b90e4bfcc 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs25.png and b/src/lay/lay/doc/images/drc_extent_refs25.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs26.png b/src/lay/lay/doc/images/drc_extent_refs26.png index d855fb789..c61984c21 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs26.png and b/src/lay/lay/doc/images/drc_extent_refs26.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs27.png b/src/lay/lay/doc/images/drc_extent_refs27.png index 73b9597c0..eee91b62a 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs27.png and b/src/lay/lay/doc/images/drc_extent_refs27.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs30.png b/src/lay/lay/doc/images/drc_extent_refs30.png index c8ac61634..1d76c687d 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs30.png and b/src/lay/lay/doc/images/drc_extent_refs30.png differ diff --git a/src/lay/lay/doc/images/drc_extent_refs31.png b/src/lay/lay/doc/images/drc_extent_refs31.png index 755dd2922..c490f81e5 100644 Binary files a/src/lay/lay/doc/images/drc_extent_refs31.png and b/src/lay/lay/doc/images/drc_extent_refs31.png differ diff --git a/src/lay/lay/doc/images/drc_extents1.png b/src/lay/lay/doc/images/drc_extents1.png index edc3fa060..5f9c37e02 100644 Binary files a/src/lay/lay/doc/images/drc_extents1.png and b/src/lay/lay/doc/images/drc_extents1.png differ diff --git a/src/lay/lay/doc/images/drc_extents2.png b/src/lay/lay/doc/images/drc_extents2.png index bb14947ce..29608ac31 100644 Binary files a/src/lay/lay/doc/images/drc_extents2.png and b/src/lay/lay/doc/images/drc_extents2.png differ diff --git a/src/lay/lay/doc/images/drc_holes.png b/src/lay/lay/doc/images/drc_holes.png index e245a0b88..c56f83164 100644 Binary files a/src/lay/lay/doc/images/drc_holes.png and b/src/lay/lay/doc/images/drc_holes.png differ diff --git a/src/lay/lay/doc/images/drc_hulls.png b/src/lay/lay/doc/images/drc_hulls.png index 65ef90930..e3f6fd16e 100644 Binary files a/src/lay/lay/doc/images/drc_hulls.png and b/src/lay/lay/doc/images/drc_hulls.png differ diff --git a/src/lay/lay/doc/images/drc_in.png b/src/lay/lay/doc/images/drc_in.png index 75ba7043b..b3017edb3 100644 Binary files a/src/lay/lay/doc/images/drc_in.png and b/src/lay/lay/doc/images/drc_in.png differ diff --git a/src/lay/lay/doc/images/drc_inside.png b/src/lay/lay/doc/images/drc_inside.png index 3e8e74b0f..03cf210a6 100644 Binary files a/src/lay/lay/doc/images/drc_inside.png and b/src/lay/lay/doc/images/drc_inside.png differ diff --git a/src/lay/lay/doc/images/drc_inside_part.png b/src/lay/lay/doc/images/drc_inside_part.png index eb827a8b1..0d407c4dd 100644 Binary files a/src/lay/lay/doc/images/drc_inside_part.png and b/src/lay/lay/doc/images/drc_inside_part.png differ diff --git a/src/lay/lay/doc/images/drc_interacting.png b/src/lay/lay/doc/images/drc_interacting.png index 96de49249..9feceacdc 100644 Binary files a/src/lay/lay/doc/images/drc_interacting.png and b/src/lay/lay/doc/images/drc_interacting.png differ diff --git a/src/lay/lay/doc/images/drc_join1.png b/src/lay/lay/doc/images/drc_join1.png index 74c2b4354..93422273d 100644 Binary files a/src/lay/lay/doc/images/drc_join1.png and b/src/lay/lay/doc/images/drc_join1.png differ diff --git a/src/lay/lay/doc/images/drc_join2.png b/src/lay/lay/doc/images/drc_join2.png index c6c751efe..b0dfc41d8 100644 Binary files a/src/lay/lay/doc/images/drc_join2.png and b/src/lay/lay/doc/images/drc_join2.png differ diff --git a/src/lay/lay/doc/images/drc_merged1.png b/src/lay/lay/doc/images/drc_merged1.png index 2f02b2930..d6c2d3e6d 100644 Binary files a/src/lay/lay/doc/images/drc_merged1.png and b/src/lay/lay/doc/images/drc_merged1.png differ diff --git a/src/lay/lay/doc/images/drc_merged2.png b/src/lay/lay/doc/images/drc_merged2.png index 76ea5368e..c5aec6c9d 100644 Binary files a/src/lay/lay/doc/images/drc_merged2.png and b/src/lay/lay/doc/images/drc_merged2.png differ diff --git a/src/lay/lay/doc/images/drc_merged3.png b/src/lay/lay/doc/images/drc_merged3.png index 2f7ead9dd..12bc538b5 100644 Binary files a/src/lay/lay/doc/images/drc_merged3.png and b/src/lay/lay/doc/images/drc_merged3.png differ diff --git a/src/lay/lay/doc/images/drc_merged4.png b/src/lay/lay/doc/images/drc_merged4.png index 0dc6f5580..e744c80fe 100644 Binary files a/src/lay/lay/doc/images/drc_merged4.png and b/src/lay/lay/doc/images/drc_merged4.png differ diff --git a/src/lay/lay/doc/images/drc_middle1.png b/src/lay/lay/doc/images/drc_middle1.png index 4fddc996b..335793134 100644 Binary files a/src/lay/lay/doc/images/drc_middle1.png and b/src/lay/lay/doc/images/drc_middle1.png differ diff --git a/src/lay/lay/doc/images/drc_moved1.png b/src/lay/lay/doc/images/drc_moved1.png index 649de520a..40319a781 100644 Binary files a/src/lay/lay/doc/images/drc_moved1.png and b/src/lay/lay/doc/images/drc_moved1.png differ diff --git a/src/lay/lay/doc/images/drc_not1.png b/src/lay/lay/doc/images/drc_not1.png index c62d8a9d3..dad0049f2 100644 Binary files a/src/lay/lay/doc/images/drc_not1.png and b/src/lay/lay/doc/images/drc_not1.png differ diff --git a/src/lay/lay/doc/images/drc_not2.png b/src/lay/lay/doc/images/drc_not2.png index c501c3ada..e3f229224 100644 Binary files a/src/lay/lay/doc/images/drc_not2.png and b/src/lay/lay/doc/images/drc_not2.png differ diff --git a/src/lay/lay/doc/images/drc_not3.png b/src/lay/lay/doc/images/drc_not3.png index 51b96ba4f..4a4553a3d 100644 Binary files a/src/lay/lay/doc/images/drc_not3.png and b/src/lay/lay/doc/images/drc_not3.png differ diff --git a/src/lay/lay/doc/images/drc_not_in.png b/src/lay/lay/doc/images/drc_not_in.png index c3e7986b3..a2556074c 100644 Binary files a/src/lay/lay/doc/images/drc_not_in.png and b/src/lay/lay/doc/images/drc_not_in.png differ diff --git a/src/lay/lay/doc/images/drc_not_inside.png b/src/lay/lay/doc/images/drc_not_inside.png index aa4c880eb..48398c45a 100644 Binary files a/src/lay/lay/doc/images/drc_not_inside.png and b/src/lay/lay/doc/images/drc_not_inside.png differ diff --git a/src/lay/lay/doc/images/drc_not_interacting.png b/src/lay/lay/doc/images/drc_not_interacting.png index 27a48eb06..3455d262b 100644 Binary files a/src/lay/lay/doc/images/drc_not_interacting.png and b/src/lay/lay/doc/images/drc_not_interacting.png differ diff --git a/src/lay/lay/doc/images/drc_not_outside.png b/src/lay/lay/doc/images/drc_not_outside.png index e6ede552a..738af1cb8 100644 Binary files a/src/lay/lay/doc/images/drc_not_outside.png and b/src/lay/lay/doc/images/drc_not_outside.png differ diff --git a/src/lay/lay/doc/images/drc_not_overlapping.png b/src/lay/lay/doc/images/drc_not_overlapping.png index 89f571221..254bac8c6 100644 Binary files a/src/lay/lay/doc/images/drc_not_overlapping.png and b/src/lay/lay/doc/images/drc_not_overlapping.png differ diff --git a/src/lay/lay/doc/images/drc_or1.png b/src/lay/lay/doc/images/drc_or1.png index 78386d1ff..a14ec27eb 100644 Binary files a/src/lay/lay/doc/images/drc_or1.png and b/src/lay/lay/doc/images/drc_or1.png differ diff --git a/src/lay/lay/doc/images/drc_or2.png b/src/lay/lay/doc/images/drc_or2.png index ae2974fa0..76fa8b7e4 100644 Binary files a/src/lay/lay/doc/images/drc_or2.png and b/src/lay/lay/doc/images/drc_or2.png differ diff --git a/src/lay/lay/doc/images/drc_outside.png b/src/lay/lay/doc/images/drc_outside.png index 190b2537c..c12dfb826 100644 Binary files a/src/lay/lay/doc/images/drc_outside.png and b/src/lay/lay/doc/images/drc_outside.png differ diff --git a/src/lay/lay/doc/images/drc_outside_part.png b/src/lay/lay/doc/images/drc_outside_part.png index 16789b517..8e3552e70 100644 Binary files a/src/lay/lay/doc/images/drc_outside_part.png and b/src/lay/lay/doc/images/drc_outside_part.png differ diff --git a/src/lay/lay/doc/images/drc_overlap1.png b/src/lay/lay/doc/images/drc_overlap1.png index 75d18813d..8a3653124 100644 Binary files a/src/lay/lay/doc/images/drc_overlap1.png and b/src/lay/lay/doc/images/drc_overlap1.png differ diff --git a/src/lay/lay/doc/images/drc_overlap2.png b/src/lay/lay/doc/images/drc_overlap2.png index 06d17e418..dbcea6cf9 100644 Binary files a/src/lay/lay/doc/images/drc_overlap2.png and b/src/lay/lay/doc/images/drc_overlap2.png differ diff --git a/src/lay/lay/doc/images/drc_overlapping.png b/src/lay/lay/doc/images/drc_overlapping.png index 2afb3ba85..33ebb1460 100644 Binary files a/src/lay/lay/doc/images/drc_overlapping.png and b/src/lay/lay/doc/images/drc_overlapping.png differ diff --git a/src/lay/lay/doc/images/drc_raw1.png b/src/lay/lay/doc/images/drc_raw1.png index fa2b1e6fd..3fea7103b 100644 Binary files a/src/lay/lay/doc/images/drc_raw1.png and b/src/lay/lay/doc/images/drc_raw1.png differ diff --git a/src/lay/lay/doc/images/drc_raw2.png b/src/lay/lay/doc/images/drc_raw2.png index 6bc582de5..3391b35e5 100644 Binary files a/src/lay/lay/doc/images/drc_raw2.png and b/src/lay/lay/doc/images/drc_raw2.png differ diff --git a/src/lay/lay/doc/images/drc_raw3.png b/src/lay/lay/doc/images/drc_raw3.png index 0288c1784..f4146586e 100644 Binary files a/src/lay/lay/doc/images/drc_raw3.png and b/src/lay/lay/doc/images/drc_raw3.png differ diff --git a/src/lay/lay/doc/images/drc_rotated1.png b/src/lay/lay/doc/images/drc_rotated1.png index 02011ed60..40bff10aa 100644 Binary files a/src/lay/lay/doc/images/drc_rotated1.png and b/src/lay/lay/doc/images/drc_rotated1.png differ diff --git a/src/lay/lay/doc/images/drc_rounded_corners.png b/src/lay/lay/doc/images/drc_rounded_corners.png index c77f0da8b..c0c8e3228 100644 Binary files a/src/lay/lay/doc/images/drc_rounded_corners.png and b/src/lay/lay/doc/images/drc_rounded_corners.png differ diff --git a/src/lay/lay/doc/images/drc_scaled1.png b/src/lay/lay/doc/images/drc_scaled1.png index 32c75761e..e29d4ecbf 100644 Binary files a/src/lay/lay/doc/images/drc_scaled1.png and b/src/lay/lay/doc/images/drc_scaled1.png differ diff --git a/src/lay/lay/doc/images/drc_separation1.png b/src/lay/lay/doc/images/drc_separation1.png index 1204d1d8a..4b370a1da 100644 Binary files a/src/lay/lay/doc/images/drc_separation1.png and b/src/lay/lay/doc/images/drc_separation1.png differ diff --git a/src/lay/lay/doc/images/drc_sized1.png b/src/lay/lay/doc/images/drc_sized1.png index c4a9d56a2..cfb54b87e 100644 Binary files a/src/lay/lay/doc/images/drc_sized1.png and b/src/lay/lay/doc/images/drc_sized1.png differ diff --git a/src/lay/lay/doc/images/drc_sized2.png b/src/lay/lay/doc/images/drc_sized2.png index af9090297..6803ba021 100644 Binary files a/src/lay/lay/doc/images/drc_sized2.png and b/src/lay/lay/doc/images/drc_sized2.png differ diff --git a/src/lay/lay/doc/images/drc_sized3.png b/src/lay/lay/doc/images/drc_sized3.png index d5a1f1ad6..090f30393 100644 Binary files a/src/lay/lay/doc/images/drc_sized3.png and b/src/lay/lay/doc/images/drc_sized3.png differ diff --git a/src/lay/lay/doc/images/drc_sized4.png b/src/lay/lay/doc/images/drc_sized4.png index d178ed236..35bb940f4 100644 Binary files a/src/lay/lay/doc/images/drc_sized4.png and b/src/lay/lay/doc/images/drc_sized4.png differ diff --git a/src/lay/lay/doc/images/drc_sized5.png b/src/lay/lay/doc/images/drc_sized5.png index 556ffb531..5efc64543 100644 Binary files a/src/lay/lay/doc/images/drc_sized5.png and b/src/lay/lay/doc/images/drc_sized5.png differ diff --git a/src/lay/lay/doc/images/drc_sized6.png b/src/lay/lay/doc/images/drc_sized6.png index c81dbdcd2..17cdf1f57 100644 Binary files a/src/lay/lay/doc/images/drc_sized6.png and b/src/lay/lay/doc/images/drc_sized6.png differ diff --git a/src/lay/lay/doc/images/drc_space1.png b/src/lay/lay/doc/images/drc_space1.png index 81b377a1a..0665068bb 100644 Binary files a/src/lay/lay/doc/images/drc_space1.png and b/src/lay/lay/doc/images/drc_space1.png differ diff --git a/src/lay/lay/doc/images/drc_space2.png b/src/lay/lay/doc/images/drc_space2.png index c4cc02b5b..65d1c9dc9 100644 Binary files a/src/lay/lay/doc/images/drc_space2.png and b/src/lay/lay/doc/images/drc_space2.png differ diff --git a/src/lay/lay/doc/images/drc_space3.png b/src/lay/lay/doc/images/drc_space3.png index db0b50898..5ac751bc3 100644 Binary files a/src/lay/lay/doc/images/drc_space3.png and b/src/lay/lay/doc/images/drc_space3.png differ diff --git a/src/lay/lay/doc/images/drc_start_segments1.png b/src/lay/lay/doc/images/drc_start_segments1.png index a6b45ecab..12ba8a091 100644 Binary files a/src/lay/lay/doc/images/drc_start_segments1.png and b/src/lay/lay/doc/images/drc_start_segments1.png differ diff --git a/src/lay/lay/doc/images/drc_start_segments2.png b/src/lay/lay/doc/images/drc_start_segments2.png index af8dfa514..806eb05ef 100644 Binary files a/src/lay/lay/doc/images/drc_start_segments2.png and b/src/lay/lay/doc/images/drc_start_segments2.png differ diff --git a/src/lay/lay/doc/images/drc_textpoly1.png b/src/lay/lay/doc/images/drc_textpoly1.png new file mode 100644 index 000000000..537997008 Binary files /dev/null and b/src/lay/lay/doc/images/drc_textpoly1.png differ diff --git a/src/lay/lay/doc/images/drc_textpoly2.png b/src/lay/lay/doc/images/drc_textpoly2.png new file mode 100644 index 000000000..6294f9f6d Binary files /dev/null and b/src/lay/lay/doc/images/drc_textpoly2.png differ diff --git a/src/lay/lay/doc/images/drc_texts1.png b/src/lay/lay/doc/images/drc_texts1.png new file mode 100644 index 000000000..af37d9f6f Binary files /dev/null and b/src/lay/lay/doc/images/drc_texts1.png differ diff --git a/src/lay/lay/doc/images/drc_texts2.png b/src/lay/lay/doc/images/drc_texts2.png new file mode 100644 index 000000000..125fc17a7 Binary files /dev/null and b/src/lay/lay/doc/images/drc_texts2.png differ diff --git a/src/lay/lay/doc/images/drc_transformed1.png b/src/lay/lay/doc/images/drc_transformed1.png index d232cbd6e..fd0ec2828 100644 Binary files a/src/lay/lay/doc/images/drc_transformed1.png and b/src/lay/lay/doc/images/drc_transformed1.png differ diff --git a/src/lay/lay/doc/images/drc_width1.png b/src/lay/lay/doc/images/drc_width1.png index 8fa847a50..75cfa7f14 100644 Binary files a/src/lay/lay/doc/images/drc_width1.png and b/src/lay/lay/doc/images/drc_width1.png differ diff --git a/src/lay/lay/doc/images/drc_width2.png b/src/lay/lay/doc/images/drc_width2.png index 1448ababb..6708ebf7d 100644 Binary files a/src/lay/lay/doc/images/drc_width2.png and b/src/lay/lay/doc/images/drc_width2.png differ diff --git a/src/lay/lay/doc/images/drc_width3.png b/src/lay/lay/doc/images/drc_width3.png index 2b4af24d9..3848ce744 100644 Binary files a/src/lay/lay/doc/images/drc_width3.png and b/src/lay/lay/doc/images/drc_width3.png differ diff --git a/src/lay/lay/doc/images/drc_width4.png b/src/lay/lay/doc/images/drc_width4.png index 727007a4b..9b281830f 100644 Binary files a/src/lay/lay/doc/images/drc_width4.png and b/src/lay/lay/doc/images/drc_width4.png differ diff --git a/src/lay/lay/doc/images/drc_with_angle1.png b/src/lay/lay/doc/images/drc_with_angle1.png index 4c9ba1f72..dadeb6727 100644 Binary files a/src/lay/lay/doc/images/drc_with_angle1.png and b/src/lay/lay/doc/images/drc_with_angle1.png differ diff --git a/src/lay/lay/doc/images/drc_with_angle2.png b/src/lay/lay/doc/images/drc_with_angle2.png index 5fe220c01..fe3b022a8 100644 Binary files a/src/lay/lay/doc/images/drc_with_angle2.png and b/src/lay/lay/doc/images/drc_with_angle2.png differ diff --git a/src/lay/lay/doc/images/drc_with_angle3.png b/src/lay/lay/doc/images/drc_with_angle3.png index 1aa664498..b3c8c978d 100644 Binary files a/src/lay/lay/doc/images/drc_with_angle3.png and b/src/lay/lay/doc/images/drc_with_angle3.png differ diff --git a/src/lay/lay/doc/images/drc_with_angle4.png b/src/lay/lay/doc/images/drc_with_angle4.png index 6e5246d2a..30aa5e33d 100644 Binary files a/src/lay/lay/doc/images/drc_with_angle4.png and b/src/lay/lay/doc/images/drc_with_angle4.png differ diff --git a/src/lay/lay/doc/images/drc_xor1.png b/src/lay/lay/doc/images/drc_xor1.png index 6a53ec961..5ca89f97b 100644 Binary files a/src/lay/lay/doc/images/drc_xor1.png and b/src/lay/lay/doc/images/drc_xor1.png differ diff --git a/src/lay/lay/doc/images/drc_xor2.png b/src/lay/lay/doc/images/drc_xor2.png index 5b391cd3f..d67542b76 100644 Binary files a/src/lay/lay/doc/images/drc_xor2.png and b/src/lay/lay/doc/images/drc_xor2.png differ diff --git a/src/lay/lay/doc/manual/drc_runsets.xml b/src/lay/lay/doc/manual/drc_runsets.xml index 6123f5e0a..dd7442135 100644 --- a/src/lay/lay/doc/manual/drc_runsets.xml +++ b/src/lay/lay/doc/manual/drc_runsets.xml @@ -545,20 +545,20 @@ output(w, "width violations")
    • Boolean AND with a polygon layer: will select those texts which are inside or at the border of a polygon. - interact is a synonym for this operation.
    • + interact is a synonym for this operation.
    • Boolean NOT with a polygon layer: will select those texts which are outside of any polygon. - not_interact is a synonym for this operation.
    • + not_interact is a synonym for this operation.
    • Text filtering by string: texts can be filtered either by matching against a fixed text or a glob pattern. The methods provided for this purpose are: - texts and - texts_not
    • -
    • flatten + texts and + texts_not
    • +
    • flatten will flatten the hierarchy of a text layer.
    • Polygon or edge generation around the text's location: - polygons and - edges
    • + polygons and + edges

    Edge pairs and edge pair collections

    diff --git a/src/lay/lay/lay.pro b/src/lay/lay/lay.pro index c5b7c4cf9..cfb7e9c75 100644 --- a/src/lay/lay/lay.pro +++ b/src/lay/lay/lay.pro @@ -165,7 +165,8 @@ RESOURCES = layBuildInMacros.qrc \ layHelpResources.qrc \ layMacroTemplates.qrc \ layResources.qrc \ - laySaltTemplates.qrc + laySaltTemplates.qrc \ + layDRCLVSHelpResources.qrc INCLUDEPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LAYBASIC_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LYM_INC DEPENDPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LAYBASIC_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LYM_INC diff --git a/src/lay/lay/layDRCLVSHelpResources.qrc b/src/lay/lay/layDRCLVSHelpResources.qrc new file mode 100644 index 000000000..39a37e95b --- /dev/null +++ b/src/lay/lay/layDRCLVSHelpResources.qrc @@ -0,0 +1,99 @@ + + + doc/images/drc_width1.png + doc/images/drc_width2.png + doc/images/drc_width3.png + doc/images/drc_width4.png + doc/images/drc_space1.png + doc/images/drc_space2.png + doc/images/drc_space3.png + doc/images/drc_separation1.png + doc/images/drc_raw1.png + doc/images/drc_raw2.png + doc/images/drc_raw3.png + doc/images/drc_enc1.png + doc/images/drc_enc2.png + doc/images/drc_overlap1.png + doc/images/drc_overlap2.png + doc/images/drc_start_segments1.png + doc/images/drc_start_segments2.png + doc/images/drc_end_segments1.png + doc/images/drc_end_segments2.png + doc/images/drc_centers1.png + doc/images/drc_centers2.png + doc/images/drc_extended1.png + doc/images/drc_extended2.png + doc/images/drc_extended3.png + doc/images/drc_extended4.png + doc/images/drc_extents1.png + doc/images/drc_extents2.png + doc/images/drc_inside.png + doc/images/drc_not_inside.png + doc/images/drc_outside.png + doc/images/drc_not_outside.png + doc/images/drc_interacting.png + doc/images/drc_not_interacting.png + doc/images/drc_overlapping.png + doc/images/drc_not_overlapping.png + doc/images/drc_and1.png + doc/images/drc_or1.png + doc/images/drc_xor1.png + doc/images/drc_not1.png + doc/images/drc_join1.png + doc/images/drc_and2.png + doc/images/drc_or2.png + doc/images/drc_xor2.png + doc/images/drc_not2.png + doc/images/drc_join2.png + doc/images/drc_and3.png + doc/images/drc_not3.png + doc/images/drc_inside_part.png + doc/images/drc_outside_part.png + doc/images/drc_in.png + doc/images/drc_not_in.png + doc/images/drc_hulls.png + doc/images/drc_holes.png + doc/images/drc_merged1.png + doc/images/drc_merged2.png + doc/images/drc_merged3.png + doc/images/drc_merged4.png + doc/images/drc_moved1.png + doc/images/drc_rotated1.png + doc/images/drc_scaled1.png + doc/images/drc_transformed1.png + doc/images/drc_sized1.png + doc/images/drc_sized2.png + doc/images/drc_sized3.png + doc/images/drc_sized4.png + doc/images/drc_sized5.png + doc/images/drc_sized6.png + doc/images/drc_with_angle1.png + doc/images/drc_with_angle2.png + doc/images/drc_with_angle3.png + doc/images/drc_with_angle4.png + doc/images/drc_rounded_corners.png + doc/images/drc_middle1.png + doc/images/drc_extent_refs1.png + doc/images/drc_extent_refs10.png + doc/images/drc_extent_refs11.png + doc/images/drc_extent_refs12.png + doc/images/drc_extent_refs13.png + doc/images/drc_extent_refs20.png + doc/images/drc_extent_refs21.png + doc/images/drc_extent_refs22.png + doc/images/drc_extent_refs23.png + doc/images/drc_extent_refs24.png + doc/images/drc_extent_refs25.png + doc/images/drc_extent_refs26.png + doc/images/drc_extent_refs27.png + doc/images/drc_extent_refs30.png + doc/images/drc_extent_refs31.png + doc/images/drc_corners1.png + doc/images/drc_corners2.png + doc/images/drc_corners3.png + doc/images/drc_texts1.png + doc/images/drc_texts2.png + doc/images/drc_textpoly1.png + doc/images/drc_textpoly2.png + + diff --git a/src/lay/lay/layHelpResources.qrc b/src/lay/lay/layHelpResources.qrc index d6ba81d93..731ef64c8 100644 --- a/src/lay/lay/layHelpResources.qrc +++ b/src/lay/lay/layHelpResources.qrc @@ -2,100 +2,6 @@ doc/help_format.css - - doc/navigator_sep.png - doc/images/drc_width1.png - doc/images/drc_width2.png - doc/images/drc_width3.png - doc/images/drc_width4.png - doc/images/drc_space1.png - doc/images/drc_space2.png - doc/images/drc_space3.png - doc/images/drc_separation1.png - doc/images/drc_raw1.png - doc/images/drc_raw2.png - doc/images/drc_raw3.png - doc/images/drc_enc1.png - doc/images/drc_enc2.png - doc/images/drc_overlap1.png - doc/images/drc_overlap2.png - doc/images/drc_start_segments1.png - doc/images/drc_start_segments2.png - doc/images/drc_end_segments1.png - doc/images/drc_end_segments2.png - doc/images/drc_centers1.png - doc/images/drc_centers2.png - doc/images/drc_extended1.png - doc/images/drc_extended2.png - doc/images/drc_extended3.png - doc/images/drc_extended4.png - doc/images/drc_extents1.png - doc/images/drc_extents2.png - doc/images/drc_inside.png - doc/images/drc_outside.png - doc/images/drc_interacting.png - doc/images/drc_overlapping.png - doc/images/drc_not_inside.png - doc/images/drc_not_outside.png - doc/images/drc_not_interacting.png - doc/images/drc_not_overlapping.png - doc/images/drc_and1.png - doc/images/drc_or1.png - doc/images/drc_xor1.png - doc/images/drc_not1.png - doc/images/drc_join1.png - doc/images/drc_and2.png - doc/images/drc_or2.png - doc/images/drc_xor2.png - doc/images/drc_not2.png - doc/images/drc_and3.png - doc/images/drc_not3.png - doc/images/drc_inside_part.png - doc/images/drc_outside_part.png - doc/images/drc_join2.png - doc/images/drc_in.png - doc/images/drc_not_in.png - doc/images/drc_hulls.png - doc/images/drc_holes.png - doc/images/drc_merged1.png - doc/images/drc_merged2.png - doc/images/drc_merged3.png - doc/images/drc_merged4.png - doc/images/drc_moved1.png - doc/images/drc_rotated1.png - doc/images/drc_scaled1.png - doc/images/drc_transformed1.png - doc/images/drc_sized1.png - doc/images/drc_sized2.png - doc/images/drc_sized3.png - doc/images/drc_sized4.png - doc/images/drc_sized5.png - doc/images/drc_sized6.png - doc/images/drc_with_angle1.png - doc/images/drc_with_angle2.png - doc/images/drc_with_angle3.png - doc/images/drc_with_angle4.png - doc/images/drc_rounded_corners.png - doc/images/drc_middle1.png - doc/images/drc_extent_refs1.png - doc/images/drc_extent_refs10.png - doc/images/drc_extent_refs11.png - doc/images/drc_extent_refs12.png - doc/images/drc_extent_refs13.png - doc/images/drc_extent_refs20.png - doc/images/drc_extent_refs21.png - doc/images/drc_extent_refs22.png - doc/images/drc_extent_refs23.png - doc/images/drc_extent_refs24.png - doc/images/drc_extent_refs25.png - doc/images/drc_extent_refs26.png - doc/images/drc_extent_refs27.png - doc/images/drc_extent_refs30.png - doc/images/drc_extent_refs31.png - doc/images/drc_corners1.png - doc/images/drc_corners2.png - doc/images/drc_corners3.png - doc/about/rba_notation.xml doc/about/about_libraries.xml diff --git a/testdata/drc/.drcSuiteTests.drc.swp b/testdata/drc/.drcSuiteTests.drc.swp deleted file mode 100644 index ff550f50a..000000000 Binary files a/testdata/drc/.drcSuiteTests.drc.swp and /dev/null differ diff --git a/testdata/drc/.drctest.drc.swp b/testdata/drc/.drctest.drc.swp deleted file mode 100644 index 03518e417..000000000 Binary files a/testdata/drc/.drctest.drc.swp and /dev/null differ