delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2016/01/28/18:38:05

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
Date: Thu, 28 Jan 2016 18:37:47 -0500
Message-Id: <201601282337.u0SNbl82007592@envy.delorie.com>
From: DJ Delorie <dj AT delorie DOT com>
To: geda-user AT delorie DOT com
In-reply-to:
<CAJZxidBaFXQ=f3984gQehYy2X_g_BZ_XsjfOkFo=68PK-JBHdQ AT mail DOT gmail DOT com>
(geda-user AT delorie DOT com)
Subject: Re: [geda-user] The nature of gEDA layers
References: <alpine DOT DEB DOT 2 DOT 00 DOT 1601180756390 DOT 9035 AT igor2priv>
<CAC4O8c-ZyNnCzCDHXkYYabSD4fG8vf+CKmhMycNJujGMPKzQDQ AT mail DOT gmail DOT com>
<s6nr3h49hrq DOT fsf AT blaulicht DOT dmz DOT brux>
<DDB07351-7C94-4B5C-99FA-83750CD4592A AT noqsi DOT com>
<20160126233332 DOT dec2f06f5c74354a3841989c AT gmail DOT com>
<s6n1t93h4ub DOT fsf AT blaulicht DOT dmz DOT brux>
<20160127091746 DOT 1c7a976c2752f913921688ac AT gmail DOT com>
<s6npowne74w DOT fsf AT blaulicht DOT dmz DOT brux>
<20160127141334 DOT c738feb9dbeb54a7dec3dff8 AT gmail DOT com>
<s6n37tjt1tv DOT fsf AT falbala DOT ieap DOT uni-kiel DOT de>
<56A8F74B DOT 8080304 AT ecosensory DOT com>
<CAC4O8c9UKLsh5FAAwUMEtHThKH-w3gUmCU2i9dRW9igkyRt-TQ AT mail DOT gmail DOT com>
<CAJZxidDmjMtd_fKvR5qZVRa+hwDUbvfaz79oZjkBgDuE1m8RBg AT mail DOT gmail DOT com>
<56A961BC DOT 3040405 AT ecosensory DOT com>
<CAJZxidC=nbxAinOtpfGHHqwPXbEMrhfat7jKgA9KBp3EVVg4_Q AT mail DOT gmail DOT com>
<s6nbn863xlu DOT fsf AT blaulicht DOT dmz DOT brux>
<56A9E416 DOT 8080500 AT ecosensory DOT com>
<s6nfuxirm0b DOT fsf AT falbala DOT ieap DOT uni-kiel DOT de>
<CAC4O8c9D-F3p8sAm2UumoE+uoMZM1ufSP=mNEPeHHpn8YrcSyg AT mail DOT gmail DOT com>
<20160128200126 DOT 0fe1bb26d5c28e59d56dfd0e AT gmail DOT com>
<CAC4O8c8prUS=NSm_7BCwkCPntsCRRMCMu9--eXXVBtD0C4pYOg AT mail DOT gmail DOT com>
<201601282134 DOT u0SLYET7002642 AT envy DOT delorie DOT com> <CAJZxidBaFXQ=f3984gQehYy2X_g_BZ_XsjfOkFo=68PK-JBHdQ AT mail DOT gmail DOT com>
Reply-To: geda-user AT delorie DOT com

> > * The GUI needs a way of letting the user specify a BBvia
> > * The GUI needs to be able to *draw* a BBvia (+1 in 3D mode)
> > * The GUI needs a way to let the user specify which layer pairs may have
> > BBVias
> 
> These are solvable problems that are for the UI to work, and shouldn't
> affect the design of the underlying data structures (opinion).

They're still work that needs to be done, and sometimes getting the
GUI right is the hardest part.  Plus, the data structures don't live
in isolation, all the parts have to be done for the feature to be
useful.

> > * The exporters need to know how to export a BBVia (esp drill files)
> 
> Exporting a BBVia is as simple as exporting any other through hole pad. The
> drill file is the trick.

BBVias need to have pads only on the relevent layers, which requires
some change, as well as the drill changes.  Remember, it's not just
gerber, it's also gcode, png, ps, and whatnot.  Someone needs to do
the work.

> > * DRC needs BBVia-specific rules
> 
> This depends on how DRC looks at the BBVia.

No, we need to teach DRC how to look at BBVias.  That's the work.

> * DRC needs to know where BBVias connect to
> 
> I wouldn't think (perhaps naively) that this problem is unique to BBVias.

It's not but each "thing" that the board is made up of, DRC needs
special code for.

> * Find, likewise
> > * Report, likewise
> > * auto-drc needs to know when to let you go "past" a BBVia
> > * ...which implies a real physical stackup is needed, and enforced
> 
> If the auto DRC is just checking connectivity and spacing, then if you
> route a trace on a layer that the via doesn't intersect (have a pad on), it
> shouldn't actually notice it.

You still have to tell it to not notice it.  It's not magic, there
needs to be code there to do it.

> should really care much what kind of component placed the primitive where
> it is,

DRC needs special code for every primitive.  We're adding one, it
needs code.

> > * ...which implies more GUI changes
> > * will autoroute use BBVias?
> 
> It could if you teach it to, but there's no reason it has to.

But the autorouter needs to be able to avoid pre-existing BBVias.
Again, more special code.

> > * what about the optimizers?
> > * We need a way of storing BBVias in a file
> > * ...and storing them internally
> 
> I think that if the component model becomes a collection of primitives,

It's not, and I'm not expecting our internal model to change as part
of what I'm describing.  Stick to the present - what needs to be done
to add BBVias?  At the moment, they'd be a new primitive, so
everything needs new code to "know" about them.

- Raw text -


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