From 0f42ebe385c83b0b75e4465d8a3222ac618bb7f8 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 23 May 2020 22:54:50 +0200 Subject: [PATCH] Updated DRC doc, added more tests. --- src/drc/drc/built-in-macros/_drc_layer.rb | 20 +++++++++++--------- src/lay/lay/doc/about/drc_ref_layer.xml | 20 +++++++++++--------- src/lay/lay/doc/manual/drc_runsets.xml | 2 ++ testdata/drc/drcSuiteTests.drc | 8 ++++++++ testdata/drc/drcSuiteTests_au1.oas | Bin 13755 -> 13806 bytes testdata/drc/drcSuiteTests_au2.oas | Bin 62118 -> 62174 bytes testdata/drc/drcSuiteTests_au3.oas | Bin 1196372 -> 1200250 bytes testdata/drc/drcSuiteTests_au4.oas | Bin 61994 -> 62050 bytes testdata/drc/drcSuiteTests_au5.oas | Bin 13556 -> 13605 bytes testdata/drc/drcSuiteTests_au6.oas | Bin 20054 -> 20103 bytes 10 files changed, 32 insertions(+), 18 deletions(-) diff --git a/src/drc/drc/built-in-macros/_drc_layer.rb b/src/drc/drc/built-in-macros/_drc_layer.rb index b6fc6802b..089cb7115 100644 --- a/src/drc/drc/built-in-macros/_drc_layer.rb +++ b/src/drc/drc/built-in-macros/_drc_layer.rb @@ -1619,7 +1619,7 @@ CODE # # 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. Polygons can be selected with respect to edges, texts and other polygons. # # The following image shows the effect of the "interacting" method (input1: red, input2: blue): # @@ -1639,8 +1639,9 @@ CODE # It returns a new layer containing the selected shapes. A version which modifies self # is \select_not_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. Polygons can be selected with respect to edges, texts and other polygons. # # The following image shows the effect of the "not_interacting" method (input1: red, input2: blue): # @@ -1660,8 +1661,9 @@ CODE # It modifies self to contain the selected shapes. A version which does not modify self # is \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. Polygons can be selected with respect to edges, texts and other polygons. # %DRC% # @name select_not_interacting @@ -1673,8 +1675,9 @@ CODE # It modifies self to contain the selected shapes. A version which does not modify self # is \not_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. Polygons can be selected with respect to edges, texts and other polygons. # %DRC% # @name intersections @@ -1732,8 +1735,7 @@ CODE # # This method will neither modify self nor other. # - # This method is available for polygon layers. Other can be an edge or polygon layer. - # Edges or polygons can be selected with respect to polygons of self. + # This method is available for polygon, edge and text layers, similar to interacting. # %DRC% # @name pull_overlapping diff --git a/src/lay/lay/doc/about/drc_ref_layer.xml b/src/lay/lay/doc/about/drc_ref_layer.xml index 2f29c1d58..f2a1d8043 100644 --- a/src/lay/lay/doc/about/drc_ref_layer.xml +++ b/src/lay/lay/doc/about/drc_ref_layer.xml @@ -752,7 +752,7 @@ is select_interacting.

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. Polygons can be selected with respect to edges, texts and other polygons.

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

@@ -1124,8 +1124,9 @@ otherwise individual shapes are selected. It returns a new layer containing the selected shapes. A version which modifies self is select_not_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. Polygons can be selected with respect to edges, texts and other polygons.

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

@@ -1440,8 +1441,7 @@ provides a way to pull shapes from other to the hierarchy to self.

This method will neither modify self nor other.

-This method is available for polygon layers. Other can be an edge or polygon layer. -Edges or polygons can be selected with respect to polygons of self. +This method is available for polygon, edge and text layers, similar to interacting.

"pull_overlapping" - Selects shapes or regions of other which overlap shapes from the this region

@@ -1655,8 +1655,9 @@ otherwise individual shapes are selected. It modifies self to contain the selected shapes. A version which does not modify self is
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. Polygons can be selected with respect to edges, texts and other polygons.

"select_not_inside" - Selects shapes or regions of self which are not inside the other region

@@ -1688,8 +1689,9 @@ otherwise individual shapes are selected. It modifies self to contain the selected shapes. A version which does not modify self is
not_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. Polygons can be selected with respect to edges, texts and other polygons.

"select_not_outside" - Selects shapes or regions of self which are not outside the other region

diff --git a/src/lay/lay/doc/manual/drc_runsets.xml b/src/lay/lay/doc/manual/drc_runsets.xml index dd7442135..cf1afed49 100644 --- a/src/lay/lay/doc/manual/drc_runsets.xml +++ b/src/lay/lay/doc/manual/drc_runsets.xml @@ -549,6 +549,8 @@ output(w, "width violations")
  • Boolean NOT with a polygon layer: will select those texts which are outside of any polygon. not_interact is a synonym for this operation.
  • +
  • As second layer for region interact: this way, polygons + can be selected which are tagged with certain texts.
  • 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: diff --git a/testdata/drc/drcSuiteTests.drc b/testdata/drc/drcSuiteTests.drc index 151cadaf8..55cbbedd2 100644 --- a/testdata/drc/drcSuiteTests.drc +++ b/testdata/drc/drcSuiteTests.drc @@ -662,6 +662,14 @@ def run_testsuite(dm, ic, tiled = false, hier = false) atdup = at.dup atdup.select_not_interacting(d) atdup.output(lb + 7, dm + 1) + p = d.interacting(at) + p.output(lb + 8, dm) + p = d.not_interacting(at) + p.output(lb + 8, dm + 1) + p = d.pull_interacting(at) + p.output(lb + 9, dm) + p = at.pull_interacting(d) + p.output(lb + 9, dm + 1) end diff --git a/testdata/drc/drcSuiteTests_au1.oas b/testdata/drc/drcSuiteTests_au1.oas index d985dfd03157ace5bef48eb1763a2cede13d0cda..47716726f803011fcdc084e4dfb5ba33f10607d1 100644 GIT binary patch delta 71 zcmdm;{VsdMZW9xc>MP6)dsxqK%oLodB~r!M!v2MMBJ)cH;cBL<%nTR#7s?A~F#c2) Wsl3VzQ^hp-pvjNP7fe{07#IM{L>Z6( delta 18 acmaEty*qouZWBhP$sbLAvotg?FaQ8oAqUw2 diff --git a/testdata/drc/drcSuiteTests_au2.oas b/testdata/drc/drcSuiteTests_au2.oas index b02e611c6083b0f95e637d94a0dc414b619e8a29..17b7942efe1d24de96e29ba538747d9d7822aab1 100644 GIT binary patch delta 78 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 MQcjxg5Pf|94f|1rSpWb4 delta 30442 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 diff --git a/testdata/drc/drcSuiteTests_au4.oas b/testdata/drc/drcSuiteTests_au4.oas index d657c930679d1af98d497cfecf390cfa09e902db..969c76839df0b6569f1d75aee8d93059c8d9af4b 100644 GIT binary patch delta 78 zcmZ4Wg!$1E<_%gOEk)|DFf;67J;TxAa6*bfq>izL{R{I1zaPpB!u3p7nHerP9#CZv d&S89^z#vk4l^L#*X|mzR?~@%qvN16*005US93lV! delta 13 VcmaF#gn88y<_%gO7bksW1OPQI2OR(a diff --git a/testdata/drc/drcSuiteTests_au5.oas b/testdata/drc/drcSuiteTests_au5.oas index 1902b063c95ca04745fb9797a51c72635155db51..f7bda73766efdda4ff5a7568d0af4989d2c03864 100644 GIT binary patch delta 69 zcmey8xio9T7h@xl>MP6)dsxqK%oLodB~r!M!v2MMBJ)cH;bO+C%nTR#g)^8I%8OK9 UWrnF?n#^eOak7934-*3e0Es3S4*&oF delta 20 ccmZ3Q^(Aw|7h^`I$%ZDMCOepLGchm#0AY*=MF0Q* diff --git a/testdata/drc/drcSuiteTests_au6.oas b/testdata/drc/drcSuiteTests_au6.oas index 3efe81486bfefdcaeb41d72ae0b95daf8f497018..ae57f6a900f3aed4b3c2e6b6fde2a63797421310 100644 GIT binary patch delta 64 zcmcaMhp~MwKr4p5d4&I8#fcim`?L3-d(gmkPqgj8~Z%F7gX!FfEi9 Psl3VzQ?vQ7(PU`=@5vUv delta 14 WcmZpl%Xn=L