Index: drc_query/index.html =================================================================== --- drc_query/index.html (revision 30220) +++ drc_query/index.html (revision 30221) @@ -74,7 +74,7 @@ rule overlap let A @.type==PSTK let B A - assert (A.ID > B.ID) && (distance(A.x, A.y, B.x, B.y) < (A.hole + B.hole)/2) thus mklist(A, B) + assert (A.ID > B.ID) && (distance(A.x, A.y, B.x, B.y) < (A.hole + B.hole)/2) thus violation(DRCGRP1, A, DRCGRP2, B) }

@@ -184,9 +184,29 @@ The thus keyword changes this: when the left side of thus evaluates to true, instead of returning true, the right side is evaluated and returned. The right side is a function call to the builtin function -mklist, which will create a new list of objects, inserting the current -iteration object from list A and list B. In other words, it's -a list of the two padstack objects participating in the overlap. When a -list-of-two-objects is returned, drc_query will automatically put the two -objects in the two offender group for marking (red and blue groups). - +violation, which will create a new list of instruction-objects pairs, +inserting the current iteration object from list A as group-1 object +and list B as group-2 object. In other words, it's +a list of the two padstack objects participating in the overlap, sorted into +two groups (red and blue on screen). +

+Call arguments for violation() are always pairs of a DRC* constant and an +object or numeric value. There can be 1 or more pairs. +The following DRC* constants can be used: + +
name meaning +
DRCGRP1 following object is in group-1 of offending objects +
DRCGRP2 following object is in group-2 of offending objects +
DRCEXPECT following numeric constant is DRC-expected value (e.g. minimum or maximum) +
DRCMEASURE following numeric constant is the measured value (that contradicts the expected value) +
+

+Using any of the above instructions is optional, with the following considerations: +