delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2017/05/01/08:33:30

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
Date: Mon, 1 May 2017 14:38:48 +0200 (CEST)
X-X-Sender: igor2 AT igor2priv
To: geda-user AT delorie DOT com
X-Debug: to=geda-user AT delorie DOT com from="gedau AT igor2 DOT repo DOT hu"
From: gedau AT igor2 DOT repo DOT hu
Subject: [geda-user] [pcb-rnd] videos: new layer selector, erasable silk
Message-ID: <alpine.DEB.2.00.1705011359430.27212@igor2priv>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
MIME-Version: 1.0
Reply-To: geda-user AT delorie DOT com

Hi all,

I've finished another round of the layer rewrite, please check out the 
demonstration video (~3 minutes):

https://archive.org/details/editlayer2

We already had editable paste and mask layers since last week; there are 
three new features.

1. Composite silk

The silk layer group is composite, which means it is possible to define 
subtractive silk layers and erase silk drawn manually or generated by 
elements. This also allows writing inverse text: text on a negative layer 
on top of a polygon on a positive layer.

If the silk group has only one positive auto layer, the old drawing 
mechanism is used instead of compositing; this is because some fabs may 
not like the geber produced by the composite silk (it uses gerber layers 
to erase). This means using the gerber export is still safe with 
traditional boards; if you start erasing silk, you should check with your 
fab.

I will get the gerber exporter to emit a warning about this when 
compositing silk is generated.

2. New layer selector widget on gtk

We had to fully rewrite the layer selector widget: the original 
implementation hardwired too many assumptions and spent too much code on 
gtk/OOP administration instead of the actual task.

The new widget shows the layers in a structure that closely follows the 
layer stack (only the substrate/insulator layers are omitted). Layers 
are grouped, group names are written on the left. Groups can be collapsed 
and expanded, as demonstrated in the following short video:

https://archive.org/details/layersel

The new widget also supports context-sensitive popups for non-virtual 
layers and groups. The popup menus are specified in the menu file.

The new code is more generic and is much smaller. When it supported about 
as much features as the old code, it was ~30% of the size of the old code. 
Now that it does a lot more, it's still about 42% of the original layer 
selector's code. So this is also a cleanup, making the source more 
compact and easier to maintain.

3. Layer order concepts

The rewrite of the widget also allowed us to simplify the concept of layer 
orders. The original code (and gEDA/PCB) presents the layers in a custom 
order that represents how layers are stored internally in the memory. 
Moving a layer up or down moves the layer in this internal list. However, 
this internal list has no connection with the physical world: the concept 
of layer groups is orthogonal to this.

In the new system the user doesn't need to know that there's such an 
internal layer list and order: layers are presented per physical group and 
up/down means changing the order of layers within the group. In-group 
order matters only for compisit groups: additions and subtractions are 
executed in this order.

As a fortunate side effect: adding new layers and moving existing layers 
will not change the color of any layer.



Furhter plans:

  - more I/O plugins and bugfixes in the next 4 weeks

  - release pcb-rnd 1.2.3 around end ot May, featuring an improved plugin 
system and editable layers

  - next target from June: more generic footprints (a.k.a. subcircuits) 
that can contain any type of objects and can refer to any layer - another 
feature with decade old pending requests.

Testing is welcome - feel free to visit us on IRC (repo.hu:6667, 
#pcb-rnd), we have some sort of activity there ~16 hours a day, 
every day.


Best regards,

Igor2


P.S. Special thanks to my fellow programmers and users/testers. This 
improvement would not have been possible without real team work of a 
constantly growing, contructive community.


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019