delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2016/01/27/02:40:35

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
From: geda AT psjt DOT org (Stephan =?utf-8?Q?B=C3=B6ttcher?=)
To: "Britton Kerin \(britton.kerin\@gmail.com\) \[via geda-user\@delorie.com\]" <geda-user AT delorie DOT com>
Subject: Re: [geda-user] The nature of gEDA users
References: <alpine DOT DEB DOT 2 DOT 00 DOT 1601180756390 DOT 9035 AT igor2priv>
<alpine DOT DEB DOT 2 DOT 00 DOT 1601260416150 DOT 9035 AT igor2priv>
<56A751EC DOT 8030402 AT iae DOT nl>
<20160126124701 DOT 0d061912c7e078ced9d4e6cb AT gmail DOT com>
<CANEvwqgs3YFnt7m8mA1DN6X2KdWbyr4zpXCVH321vDo1f7CyxA AT mail DOT gmail DOT com>
<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>
<CAC4O8c9RDJc17XGo-H6DuN5h76RKhQmRNGpcn3DKBKUBP=PuCg AT mail DOT gmail DOT com>
Date: Wed, 27 Jan 2016 08:40:00 +0100
In-Reply-To: <CAC4O8c9RDJc17XGo-H6DuN5h76RKhQmRNGpcn3DKBKUBP=PuCg@mail.gmail.com>
(Britton Kerin's message of "Tue, 26 Jan 2016 13:35:50 -0900")
Message-ID: <s6nwpqvfp2n.fsf@blaulicht.dmz.brux>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)
MIME-Version: 1.0
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id u0R7eH9O004962
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

"Britton Kerin (britton DOT kerin AT gmail DOT com) [via geda-user AT delorie DOT com]"
<geda-user AT delorie DOT com> writes:

> On Tue, Jan 26, 2016 at 12:19 PM, John Doty <jpd AT noqsi DOT com> wrote:
>>
>> On Jan 26, 2016, at 2:02 PM, Stephan Böttcher <geda AT psjt DOT org> wrote:
>>
>>> But the first steps should not be "implement b/b vias" or "allow more
>>> than one pair of outer layers".  It should be something like "expess
>>> Elements and Vias as subclasses of generic containers that can include
>>> anything".
>>
>> +1
>
> So you guys actually want a more strongly typed system.  

No.

The Via is a container with Attribute "Via".  An Element is a container
with Attibute "Element".  The GUI HID shall present those as special
types to the user, in component libraries and via stack editors. But in
the data structures those could well the the same as a hierachical
sublayout.

> That's pretty different from gschem, which uses attributes (duck
> types) for most things.

I like attributes.

> Regarding making arbitrary containers, I'm not convinced its a good
> idea.  Entire layouts serve much the same purpose and can easily be
> copied about. 

I'd like to instanciate the same sublayout by reference, so I can edit
the master and all copies follow.  Problem: How to override atributes
(refdes) on the copies?

> Admittedly I'm not convinced the other way either, since I generally
> prefer types to attributes.  However, there's no denying attributes
> are easier and can be added incrementally.  Type hierarchies have the
> further disadvantage of being closed to user extension in C (and
> effectively so in most other languages as well).

Types require that you know all use cases beforehand.

How about implementing types in HID code on top of the attribute driven
data structures?


Container{
  Attributes{
        type="Via",
        origin=(1003mil,234mil),
        }
  Circle{layer="microvias-top", radius=20mil, center=(0,0)},
  Circle{layer="component", depth=20, radius=40mil, center=(0,0)},
  Circle{layer="ground", depth=20, radius=40mil, center=(0,0)},
  Circle{layer="component", depth=-35, radius=50mil, center=(0,0),
         Attributes{thermal="clerance"},
  Circle{layer="ground", depth=-35, radius=50mil, center=(0,0),
         Attributes{polarity="neg",
                    thermal="clerance"},
  Line{layer="ground", depth=34, ...
       Attributes{thermal="diagonal,square"}
      }
  }

The thermal tool knows about this type="Via" and is allows to delete/add
objects with attribute "thermal".


-- 
Stephan

- Raw text -


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