delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2016/01/28/09:00:06

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=20120113;
h=mime-version:in-reply-to:references:date:message-id:subject:from:to
:content-type;
bh=VFtQ34OyNh1D7hLilkNZQyb7Z5ioD1vpM8LEwVFh9M0=;
b=qPiDM1oyH+Eym2bOkJ9ML1n751hEYX/jH63FDxEndd1eud3KE/S//m4QtoY+sdWBty
Zw/Uh/8cI/f14SD+HkoCpW0yqb1P47v7hYxmZQI0r6Ah6U600Z9B+BQAUOOJYOYcEksX
GFWDaw0Sxyoo720cGPzk3K1Sw48PZb3YvAe01tJGW9X4o0snEQH+XhMCxFxAi4+uhI7E
EDQgeNQ5HMRkHu79qV9gTrXdGKmSDVSB0qM6eL80VjZf9vlgsxjonA9LO06DIzfoXxRm
vpIsSr9WVf5xfDBqAdAJxGTDVCP9UmyKce7zi8VAWWJsXZkMrluv97dOdj/B27pcGxM+
bK/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20130820;
h=x-gm-message-state:mime-version:in-reply-to:references:date
:message-id:subject:from:to:content-type;
bh=VFtQ34OyNh1D7hLilkNZQyb7Z5ioD1vpM8LEwVFh9M0=;
b=fx767Bpmj9Z6uQQ1KR3Jn6jsTBXIgqZIRRDuImqz0rV+ZfHiOGCi4B9lqQuT4vBkcV
INzPFU+fR1igETiCtSOOeivP1x9iDThg5yi5AxziQqu0VqBqgCVVyI1fA72YHfr4sFCP
zBfmyieKMRP7K7CCMWnMBg8/39Yb64ZvSKtUBpiJ6NAzMsNZ1xCNxaQEAqt0iGXBDMjo
/0iSy3Kf0oq92bCieXinHYPv3PtlnSKMGSRrlA8cVF1TpNQ0eaTUP97rBiV+gkx95lUv
363HrPiJs0rHyCXoxDNUNu+SmdaqVROfbo8yTLLiJwaucw87D+DIU2Tz/MRuvnv3UOIq
12gg==
X-Gm-Message-State: AG10YOT/NnY9BIUgMO8wHYYcdbRv5waITBtp9LqiAXq7QbrGMwUq599ipsHGrDOg2VFFFv8VPoSXmZvIAl9rlQ==
MIME-Version: 1.0
X-Received: by 10.107.165.71 with SMTP id o68mr3886209ioe.94.1453989578381;
Thu, 28 Jan 2016 05:59:38 -0800 (PST)
In-Reply-To: <20160128124020.8f2f33210481f637a696f5d0@gmail.com>
References: <alpine DOT DEB DOT 2 DOT 00 DOT 1601180756390 DOT 9035 AT igor2priv>
<201601261804 DOT u0QI4KEQ009550 AT envy DOT delorie DOT com>
<E7D351BF-5BBB-41AC-B996-D5E27079A82C AT noqsi DOT com>
<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>
<20160128124020 DOT 8f2f33210481f637a696f5d0 AT gmail DOT com>
Date: Thu, 28 Jan 2016 08:59:38 -0500
Message-ID: <CAJZxidD7=NE+Q3FGOU+ER3Xh7TRskEPRTKa=yrwUm51_VaYw0A@mail.gmail.com>
Subject: Re: [geda-user] The nature of gEDA layers
From: "Chad Parker (parker DOT charles AT gmail DOT com) [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com>
To: geda-user AT delorie DOT com
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

--001a1141d0e2539e11052a655435
Content-Type: text/plain; charset=UTF-8

This discussion is in no small part strengthening my suggestion that the
layer data structure be agnostic to how it is ultimately realized. "Layer"
clearly means different things to different people.

> So, if one generic container of data holds a 2D conductor on insulator
> pattern, and one holds
> > solder mask and one holds top-to-bottom-via connectivity they don't all
> get talked about as layers or it
> > is confusing.
>

I wouldn't include inter-layer connectivity as a layer. I think that's a
fundamentally different idea. I would suggest implementing connectivity
within a footprint/pattern/group as something like a netlist. pcb
implements connectivity awareness for other reasons, so you might as well
reuse the idea here. But I think that is a discussion for a different
thread.

Otherwise, yes, I do think you call a solder mask pattern a layer, I do
think you call a copper pattern a layer, I do think you call a drill
drawing a layer, I do think you call assembly data a layer.


> A layer is a flat surface made of particular material for example: copper
> foil, solder mask, insulating board.


My suggestion is that you modify your statement slightly and replace "A
layer is a flat surface..." with "A layer -represents- a flat surface". To
the software, a layer is really just a collection of primitives that can be
operated on and are frequently exported together.

A Group is a collection of properties, attributes and objects on
> multible layers.
>
>   Librecad used the term "Block"
>   Inkscape uses the term "Group"
>

Let me point out that Inkscape also has the concept of layers. The Inkscape
concept of a group is more like what pcb would call a footprint/pattern,
with the exception that Inkscape groups are restricted to a single layer.
Creating an Inkscape group brings all of the grouped objects into the same
layer. I've actually found that to be really annoying on multiple
occasions. Believe it or not, I've actually laid out a board with
Inkscape...

I think that perhaps one sticking point may be that in the concept of layer
that I have presented, an individual primitive can be in multiple
containers. A circular piece of copper could be in a group/pattern
container (e.g. a component footprint) and also in a layer container. You
would be able to access the primitive from either container.

I don't think there should be a "buried-via" property.  I don't think
>
those should be attached to the pads.
>

I agree. A buried via is just a collection of objects on particular layers
and a hit on a particular drill layer.

We export a plated-drill file.


In other software packages, I have always exported just a drill file, and
the board house determines if it should be plated based on the presence of
copper pads around it.

We should have a layer that corresponds
> to the geometry exported in that file. And we be able draw on them (in
> expert mode).
>

Yes, I completely agree. You could even have multiple drill layers if you
wanted to. For example, a drill layer for the top side, a drill layer for
the bottom side, and drill layers for any or all inner layers. This could
be useful in implementing blind/buried vias.

The drill-layers are marked as such with a property that is hardwired to
> the code that handled connectivity.
>

I would try to keep connectivity and geometry separate if possible.

Geometry and connectivity needs to be hardwired in the core data
> structures. That is the core of what is needed to be efficient while
> drawing.
>

Ultimately a layout tool is a connectivity aware drawing package, although
some would argue that the connectivity awareness is optional. You certainly
-can- layout a board without net lines, but I think many if not most board
designers find them quite useful.

The via editor will help the user to define all required via layers
>
and apply designrules that test for manufacturability.
>

I would just say footprint/pattern editor. A via is really no different
from a footprint/pattern when it comes down to it.

--Chad

--001a1141d0e2539e11052a655435
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>This discussion is in no small part strengthening my =
suggestion that the layer data structure be agnostic to how it is ultimatel=
y realized. &quot;Layer&quot; clearly means different things to different p=
eople.<br></div><div><div><div><div class=3D"gmail_extra"><br><div class=3D=
"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span>&gt; =
So, if one generic container of data holds a 2D conductor on insulator patt=
ern, and one holds<br>
&gt; solder mask and one holds top-to-bottom-via connectivity they don&#39;=
t all get talked about as layers or it<br>
&gt; is confusing.<br></span></blockquote><div><br></div><div>I wouldn&#39;=
t include inter-layer connectivity as a layer. I think that&#39;s a fundame=
ntally different idea. I would suggest implementing connectivity within a f=
ootprint/pattern/group as something  like a netlist. pcb implements  connec=
tivity awareness for other reasons, so you might as well reuse the idea her=
e. But I think that is a discussion for a different thread.<br><br></div><d=
iv>Otherwise, yes, I do think you call a solder mask pattern a layer, I do =
think you call a copper pattern a layer, I do think you call a drill drawin=
g a layer, I do think you call assembly data a layer. <br></div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left:1px solid rgb(204,204,204);padding-left:1ex"><span>
</span>A layer is a flat surface made of particular material for example: c=
opper foil, solder mask, insulating board. </blockquote><div><br>My suggest=
ion is that you modify your statement slightly and replace &quot;A layer is=
 a flat surface...&quot; with &quot;A layer -represents- a flat surface&quo=
t;. To the software, a layer is really just a collection of primitives that=
 can be operated on and are frequently exported together. <span><br><br></s=
pan><blockquote style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb=
(204,204,204);padding-left:1ex" class=3D"gmail_quote"><span>
</span>A Group is a collection of properties, attributes and objects on<br>
multible layers.<br>
<br>
=C2=A0 Librecad used the term &quot;Block&quot;<br>
=C2=A0 Inkscape uses the term &quot;Group&quot;<br></blockquote><div><br></=
div><div>Let me point out that Inkscape also has the concept of layers. The=
 Inkscape concept of a group is more like what pcb would call a footprint/p=
attern, with the exception that Inkscape groups are restricted to a single =
layer. Creating an Inkscape group brings all of the grouped objects into th=
e same layer. I&#39;ve actually found that to be really annoying on multipl=
e occasions. Believe it or not, I&#39;ve actually laid out a board with Ink=
scape...<br></div><div><br></div><div>I think that perhaps one sticking poi=
nt may be that in the concept of layer that I have presented, an individual=
 primitive can be in multiple containers. A circular piece of copper could =
be in a group/pattern container (e.g. a component footprint) and also in a =
layer container. You would be able to access the primitive from either cont=
ainer.<br></div><div></div><div><span><br></span><blockquote style=3D"margi=
n:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex=
" class=3D"gmail_quote"><span>
</span>I don&#39;t think there should be a &quot;buried-via&quot; property.=
=C2=A0 I don&#39;t think<br></blockquote><blockquote style=3D"margin:0px 0p=
x 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class=
=3D"gmail_quote">
those should be attached to the pads.<br></blockquote>
<br></div><div>I agree. A buried via is just a collection of objects on par=
ticular layers and a hit on a particular drill layer.<br></div><div><br><bl=
ockquote style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,20=
4,204);padding-left:1ex" class=3D"gmail_quote">
We export a plated-drill file.=C2=A0=C2=A0</blockquote></div><div><br></div=
><div>In other software packages, I have always exported just a drill file,=
 and the board house determines if it should be plated based on the presenc=
e of copper pads around it.<br><br><blockquote style=3D"margin:0px 0px 0px =
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class=3D"gma=
il_quote"> We should have a layer that corresponds<br>
to the geometry exported in that file. And we be able draw on them (in<br>
expert mode).<br></blockquote></div><div>
<br></div><div>Yes, I completely agree. You could even have multiple drill =
layers if you wanted to. For example, a drill layer for the top side, a dri=
ll layer for the bottom side, and drill layers for any or all inner layers.=
 This could be useful in implementing blind/buried vias. <br></div><div><br=
><blockquote style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(20=
4,204,204);padding-left:1ex" class=3D"gmail_quote">
The drill-layers are marked as such with a property that is hardwired to<br=
>
the code that handled connectivity.<br></blockquote><br></div><div>I would =
try to keep connectivity and geometry separate if possible.<br></div><div><=
br><blockquote style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(=
204,204,204);padding-left:1ex" class=3D"gmail_quote">
Geometry and connectivity needs to be hardwired in the core data<br>
structures. That is the core of what is needed to be efficient while<br>
drawing.<br></blockquote>
<br></div><div>Ultimately a layout tool is a connectivity aware drawing pac=
kage, although some would argue that the connectivity awareness is optional=
. You certainly -can- layout a board without net lines, but I think many if=
 not most board designers find them quite useful.<br></div><div><br><blockq=
uote style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,20=
4);padding-left:1ex" class=3D"gmail_quote">
The via editor will help the user to define all required via layers<br></bl=
ockquote><blockquote style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex" class=3D"gmail_quote">
and apply designrules that test for manufacturability.<br></blockquote><div=
><br></div><div>I would just say footprint/pattern editor. A via is really =
no different from a footprint/pattern when it comes down to it.=C2=A0 <br><=
/div>
<span></span><br></div><div>--Chad<br> </div></div></div></div></div></div>=
</div></div>

--001a1141d0e2539e11052a655435--

- Raw text -


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