delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2017/08/13/09:16:02

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
Date: Sun, 13 Aug 2017 15:16:28 +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] roadmap for data model / drawing primitive cleanup
Message-ID: <alpine.DEB.2.00.1708131454030.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,

this is somewhat related to the other thread with the slotting.

As I wrote earlier, the subcircuit upgrade is not merely replacing 
elements with something that supports "polygons and text on copper" or 
"better paste pattern", but it is a large scale rework of the data model. 
So instead of introducing 10 new special cases for 10 such feature 
requests, we just let users compose arbitrary constructs on whatever 
objects on whatever layers which will automatically solve all such 
feature request.

As a result we will have less number of drawing primitives, but what 
remains will be more generic. Together with subcircuits it will be easy to 
combine them to build up new, non-atomic objects.

We will go from PCB's 11 drawing primitives to only 6 at the end. Less is 
more: you will be able to draw arbitrary smd pad shapes and you already 
can include paste and mask patterns in a subcircuit (that will then be the 
footprint), draw poly on silk and text on copper in your footprints, just 
to name a few possibilities we will get automatically.


More details can be found in the following devlog entry:

http://repo.hu/projects/pcb-rnd/devlog/20170813_prim.html


Most importantly: the new set of drawing primitives will be orthogonal and 
will lack special casing. Examples of non-orthogonal, special cases in the 
original data model:

  - 'pin' which is really an element-via-with-pin-number; the via code is 
mostly duplicated as 'pin' code, sometimes adding a few lines for the pin 
number

  - 'pad' which is really an element-copper-line-with-pin-number; but you 
can't make a polygon or arc be an smd pad

- 'element-line' which is really an element-silk-line, but you can't make 
it work with any other layer than silk and can't draw polygon on silk, 
etc.

Finally, the best part is that we can do the transition while keeping 
everything stable all the time. We simply add a few new primitives in 
parallel to the old ones, for a short time we will have even more than 11. 
Then when the new ones already work properly, we start switching over and 
gradually remove the old ones. We will retain file format level 
compatibility with every other CAD (e.g. kicad, eagle, gEDA/PCB).


Regards,

Igor2

- Raw text -


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