X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Virus-Scanned: amavisd-new at neurotica.com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=neurotica.com; s=default; t=1476671195; bh=f/VHPNfOUFGyBhfVm/PSyE8ufw7bYm1r8YWQuv1JIkI=; h=Subject:To:References:From:Date:In-Reply-To; b=Cz3D/7mEXpE86VqERofEtTruBPUU9o/4dfetTZT+2nkIHMSNbuOzbEWh2k8uZqfzN HtNAr2oVoeNug5tyKI3BNI/cxINqJnHrQHvBIkGYbxNktHagKcoflMgb+3xifDuXlY JBMT7KJ3udvVPkh9NGX2yKhbs+wyaEiXn9XHAtgY= Subject: Re: [geda-user] [pcb-rnd] advanced search, query language and the next steps To: geda-user AT delorie DOT com References: From: "Dave McGuire (mcguire AT neurotica DOT com) [via geda-user AT delorie DOT com]" Message-ID: <63b6266a-7db9-d6f4-331f-21f82f15625a@neurotica.com> Date: Sun, 16 Oct 2016 22:26:35 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk Um. Wow. That's damn impressive. Transparency would be sooooo nice. ;) I still owe you a reply about other platforms; I'm in a busy time right now but will definitely get involved in that soon. -Dave On 10/16/2016 01:48 PM, gedau AT igor2 DOT repo DOT hu wrote: > Hi all, > > have you ever wanted to search for vias with hole too small or too large > in PCB? Or select all those tiny trace line segments that hide under smd > pads to delete them at once? Or find traces that differ from a given > thicnkess on your 50 Ohm impedance layer and change their thickness to > the right value in one go? > > With pcb-rnd these are all possible now (available from svn, will be > included in the next release in early November). > > The engine of the new feature is a query language where complex searches > can be specified using an expression. For example "traces shorter than 4 > mm on any copper layer on the top side of the board" can be written as: > > (@.length < 3 mm) && (@.layer.type == COPPER) && (@.layer.position == TOP) > > An action is provided to evaluate expressions or select or unselect > objects matching the expression. This feature is accessible from all > HIDs. Query language tutorial: > http://repo.hu/projects/pcb-rnd/query/tutor_cli.html > > To ease building expressions without learning the query language, the > gtk HID offers an Advanced search wizard dialog box where the user can > build an expression by selecting operators and operands from dynamic > lists, as demonstrated in the following videos: > > https://archive.org/details/pcb_rnd_search_short_line > > https://archive.org/details/pcb_rnd_search_thick_bottom > > An example using the CLI action is also captured: > > https://archive.org/details/search_top_U_elements > > For modularity, the query language is implemented as an optional feature > plugin (enabled and static linked by default). > > > > That's the present; but it has a future too. As of now, the query > language is a powerful search tool, but it is really just the first step > of a bigger plan: improving the DRC. > > The query language is designed to be capable enough to serve as the > programmed DRC later. The DRC script would be a set of named queries > (consisting of multiple expressions). The DRC script would be generated > by the netlister. This would let the user specify complex requirements, > for example: > > - star grounding > > - "make sure this connector is near the board edge" > > - "this digital IC should not be closer than 20 mm to this sensitive > analog circuit" (e.g. dist(U1, U2) > 20 mm) > > - matched length pairs (e.g. abs(net1.length - net2.length) < 10 mm) > > These requirements would be coming from attributes on the schematics. > Then the netlister would collect all these DRC-requirement attributes > and generate the DRC script (using templates) that would be imported > just like the netlist. > > This means we could handle a lot of special cases via scripting - > without the schematics editor or the netlister or pcb-rnd's DRC having > to have custom heruistics hardwired for each case. Such DRC script > templates could be shared and collected in libraries like symbols or > footprints. > > Happy querying! > > Best regards, > > Igor2 -- Dave McGuire, AK4HZ New Kensington, PA