X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:subject:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Mx/Mvlsbw1QniVnFBXvVKJ61cFBOqNyVqe5xY9evpq4=; b=imD8Uv7xaKnY0FL7ywwez3ndieGIPa5NRHl+jdMZBD4lTHeLM9V8jHhOZOzjzFA6fF TBfMIPRrVg0TP0RnDfRfxowidtz5VlDDC8a8GzGtmFSAH3A8DS2Cp632aeIiTnZcN08e TRV4UqEBZH/5oCfu6qEkKY5isMjNplDmrzcuMoDoNYJzlouy4J8r5j/A4PVD9ywjOrLH AsJvISyXLu5c7jLo1YfdyxwctxD+bWnwl8b1tocIefME3uJiqpER0ngjoe7h2sH5kaTL hrkZDqxEvqgtjJi+DVDvPaSS7wnMKwPwHYc8ajjr7/GNOaLCZyFJ9wLr78GCWZH+x+Kr 0yvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Mx/Mvlsbw1QniVnFBXvVKJ61cFBOqNyVqe5xY9evpq4=; b=N2xEnFLsMgkFbvO2FB8jGKzBqQ5qWcx+Lin7ATgOUIQQWS4n9Z81/jceYWkBHmVwlR 5ruVFHg8wD1aOUI8w2n/wdqroB1KJlbOSklt6P70vyMLex0lu6k61py2A/pczJMh2+iP qz2XaJK03i0f14eJvf2IZALFqtZzWFZyd/UgfQV/jcRCkf+91zVfvezycSL5sUd7dnpl XiGw1P5jkbqFYi6XZ2DpNwyPwi7xRAtpTjK90EIR1O/IXYsU02dOOGT0+LcbvpciG5GX vENNW5oaIPO0ghqCBsbKT9H0M94E5ixlFbXHK3PEzcjofxafzyR8F283+CskeC+vhiv6 bYxw== X-Gm-Message-State: AN3rC/76N2jb8zO05tvzTRwg0+VP3FtIUlXLJ7mmm14F4zm4jfR8Jtxr c2jfJw1wBsPgJwqf X-Received: by 10.46.5.130 with SMTP id 124mr6871470ljf.137.1492876373999; Sat, 22 Apr 2017 08:52:53 -0700 (PDT) Date: Sat, 22 Apr 2017 17:52:50 +0200 From: "Nicklas Karlsson (nicklas DOT karlsson17 AT gmail DOT com) [via geda-user AT delorie DOT com]" To: geda-user AT delorie DOT com Subject: Re: [geda-user] [pcb-rnd] user editable mask layer Message-Id: <20170422175250.bfd067035f65990b29569918@gmail.com> In-Reply-To: References: X-Mailer: Sylpheed 3.5.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII 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 First you say paste layer won then you talk about solder further down but since usually wherever there is a opening in the solder resist there should also be solder paste. Anyway I think this could be something really great because it could remove the need to add these layers for every pin and pad. Instead there would only be manual editing then there are exceptions from the normal use. If anyone here have experience with PCB manufacturing factory I guess they could provide some useful information about the rules for paste and solder resist layers. On Sat, 22 Apr 2017 16:05:13 +0200 (CEST) gedau AT igor2 DOT repo DOT hu wrote: > Hi all, > > before the previous release I made a feature poll on the pcb-rnd mailing > list to see which potential new feature is the most popular. The one that > would provide user editable mask (and later paste) layer won. This feature > is a long-wanted one, the oldest request I could dig up is from 2004: > > https://www.mail-archive.com/geda-user AT seul DOT org/msg02581.html > > Now, after a bit more than 12 years, we have a working prototype in > pcb-rnd svn (also in the next stable release around end of May): > > https://archive.org/details/editmask > > http://igor2.repo.hu/tmp/e3.svg > > It's not some ugly hack for this specific case, but a generic new way of > combining logical layers, removing the previous hardwired assumption about > the polarity of the mask layer. > > > > Technical background & future directions > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > As seen on the video, the mask layer group can host layers. Layers have > two new property: > > 1. whether the layer is user drawable or automatically generated > > 2. whether the layer is positive rendered or negative rendered > > When the core needs to draw the mask, it iterates through the list of > layers in that group. If the first layer is negative, it draws a big > rectangle fill over the board. Then it just applies each layer: positive > layers put on soldermask, negative layers remove (cut out) soldermask. > > If a layer to be rendered is an user layer, the objects are drawn > normally. If it is "auto", the group-specific logic is executed: for the > mask group, it's the usual "pins and pads modify the mask" code. > > Any combination of the flags work. To invert the whole mask, > just start it with a positive layer instead of a negative one: > > http://igor2.repo.hu/tmp/e4.svg > > This means the user can chose from two policies: the original "soldermask > everywhere, then I'll make cutouts over the traces/sections where I don't > want soldermask"; or the "put soldermask only within these regions" by > drawing them on the first positive layer. > > It is also possible to omit the auto layer, in which case there won't be > any pin/pad generated mask. > > Also note that these are per group; the bottom and the top mask group > doesn't need to have the same number of layers or the same structure. E.g. > it's possible to have the usual negative-auto layer on top for smd parts > and no-auto on the bottom with a large manual rectangle that covers every > pin/via/pad with soldermask. > > It's possible to use all drawing primitives on the user defined mask > layers: lines, arcs, text and polygons (even polygon holes). Everything > works as expected. There's no specific limit on + and - layers a mask > group can list. > > Currently the gtk/gdk HID, the lesstif HID, the png, gerber, ps and svg > exporters have full support for the new feature. The gtk/gl HID works for > the most common cases but will require some more work until it fully > supports the editable mask. > > Next steps will be: > > - finishing hids/exporters, a lot of testing > > - apply the same logics on the paste layer: this means manually placed > paste anywhere and/or manually removed paste from where the auto-layer put > it for a pad > > - apply the same logics on the silk layer: silk already combines > auto-generated objects with user objects; the new feature would be that > the user can override (erase) some auto-generated elements or turn off the > auto-generation for a silk layer group or invert the silk layer. > > - this will also provide a possibility for inverse text on silk: just draw > a rectangle on a positive silk layer then write text over it on a later > negative silk layer - the text will show up as a cutout. > > Testers are welcome. Join today, be part of the pcb-rnd community, affect > what is implemented tomorrow. > > Best regards, > > Igor2