www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2015/10/04/22:39:09

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=yJfICWIsVuWnM2++gbU0YigBajWkijtegHlGy1AtABU=;
b=Q4TeB0drfyAqZ/WXCba/MlhlZH9Lf5ZUYcDvapRJxJrw7JL+9JS+kfKxtw6sQD3xp6
cKe3LoMlO4bgguAs/pX4SQcMPPIMsl45bvmEdhXsaZIpDr28AOZtIkLGtu+4s+zaIMx2
PHN6/2s6BZLODLsgL7dPReVdiz3zGmkzXli5/8lyT6ZDAr/MK5t/e3MY0fwHnGLtIf1n
2/aYuqs7XfAnn9iuNW7VT6B4lzeYjCHDMLQOuPazEgPMfOPJuuM4+l91pNXz9tl3RO6Z
hz9GmXlj0ceBOAznITA+tDCoIDbm/P5utZEWo1yuAtOBISXqVETwsmNOL0nA5pTCPcrm
Fc6A==
MIME-Version: 1.0
X-Received: by 10.180.187.240 with SMTP id fv16mr8215921wic.57.1444012718365;
Sun, 04 Oct 2015 19:38:38 -0700 (PDT)
In-Reply-To: <1443997480.2068.32.camel@ssalewski.de>
References: <20151003210701 DOT de392b925f54dadb0a5fedd8 AT gmail DOT com>
<1443903758 DOT 1873 DOT 13 DOT camel AT ssalewski DOT de>
<56104A0A DOT 9020507 AT xs4all DOT nl>
<1443909591 DOT 1873 DOT 18 DOT camel AT ssalewski DOT de>
<CAC4O8c_g7e562Gaotrbi6gLfjP6cJU1ys=MtEkDE7bSh4F9dfg AT mail DOT gmail DOT com>
<1443975731 DOT 671 DOT 52 DOT camel AT ssalewski DOT de>
<20151004191717 DOT bf8223417541a9306bfbd9ea AT gmail DOT com>
<CAC4O8c9Bi5HJfcW6wUgm_+4O2gs4vDdBMbS2hF_0dCqnBuJahQ AT mail DOT gmail DOT com>
<1443997480 DOT 2068 DOT 32 DOT camel AT ssalewski DOT de>
Date: Sun, 4 Oct 2015 18:38:38 -0800
Message-ID: <CAC4O8c-bnGky=Nab59-pOTJkB8Q9Tc5t5hqE+dnEF-777hUjMg@mail.gmail.com>
Subject: Re: [geda-user] GTK3, Glade interface designer (router, auto?)
From: "Britton Kerin (britton DOT kerin 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

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

On Sun, Oct 4, 2015 at 2:24 PM, Stefan Salewski <mail AT ssalewski DOT de> wrote:

> On Sun, 2015-10-04 at 13:16 -0800, Britton Kerin (
> britton DOT kerin AT gmail DOT com) [via geda-user AT delorie DOT com] wrote:
>
> [...]
>
>
> > Well I thought it was all really exciting, but it wasn't obvious how it
> > could be integrated with pcb (being in Ruby).  But now some serious
> efforts
> > are being considere to make a much more accessible file format (via sql
> and
> > YAML) so it could be provided as a stand-alone tool that would be useful
> to
> > pcb users.
> >
>
> If the router could route all traces, we could simply import the traces.
> That is what I did for the example picture. Better is a very basic GUI
> tool, where we can move elements and grab rubberbands and move them.
>
> >
> > > > People seem to prefer manually routing, and many seem to not like
> > > > curved traces.
> > > >
> > > > I do not really understand your term "intra-layer". My router is
> using
> > > > arbitrary numbers of layers, and it connect the layers with
> > > > automatically placed vias. Testing was done with two layers. I have
> > > > some problems remembering details, have not touched it for more than
> > > > too years. I think no crashes. The problem is, that there can remain
> > >
> >
> > Great!  I had the impression from pics on your site and something Kai
> said
> > that just the rubber band part was done.
>
> The layer assignment was described in detail in the thesis, it was easy
> coding that, and it works not bad. But there is room for improvement,
> but I forgot details. But I think I will be able to remember when I work
> again on that.
>
> >
> >
> > > > unrouted traces due to space constraints. So some user interaction
> > > > would be needed, for example for moving parts. Coding that part would
> > > > be the fastest way to make that router useful, but coding that part
> is
> > > > not really much fun and take some time. And when no one is interested
> > > > at all? Making the router working without user interaction may be
> more
> > > > interesting, that would include moving components. But that is more
> > > > difficult and would need some time for coding.
> > >
> >
> > I take it the remaining traces are really hard to subsequently add by
> > hand?  Are there options other than moving parts to make is useful, maybe
> > somehow less ambitious or cost function rewards "ports" or something?
>
> Importing the traces in PCB program and then fixing it would be
> generally possible, but not really nice. When we have curved traces from
> autorouter, we generally do not want some straight manually inserted
> once. For the example pictures I have painted the missing unrouted
> traces in white color, you can see that generally manually fixing is not
> hard -- insert some vias, rearrange some traces. But a tool that can
> handle rubberbands well would be nice for that.
>
> Another unsolved task is feeding trace parameters like trace width and
> clearance into the router. Generally that is not equal for all traces.
> My initial idea was taking these parameters from the schematic, but an
> editing option for the router would be fine, which may need GUI support.
>

I think pcb has defaults for these, and saves them in each file also as
overrides.  So they could be gotten from an existing pcb file.  Or is
making the router implement different parameters the hard part?


> >
> >
> > > > But I think I will continue at some time. The code is easy, short,
> and
> > > > mostly based on that PhD thesis. But I have never cleaned it up
> > > > unfortunately, and for latest CGAL and Ruby 2.2 some fixes may be
> > > > necessary. Porting to Nim would be nice, but for that I would have to
> > > > create bindings for CGAL first. Porting to C++ would be an option too
> > > > of course, then I need no CGAL bindings, and integration in PCB
> program
> > > > is easier. But that would be no fun for me.
> > >
> >
> > I would rather it stay Ruby, rather than be ported to any of those other
> > things.  In addition to not being fun it would make it less accessible I
> > think.  I looked at the Ruby at the time and it seemed quite nice.
>
> Ruby seems to be not that popular any more, most people prefer Python
> now. With Nim the code would look similar nice, but speed would be at
> least ten times faster. Routing the demos took a few seconds in Ruby,
> but for really large boards speed can become important.
>

TIOBE showing Ruby still gaining
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
I didn't mind it except it's error message are bad compared to perl (which
desperately needs its smart error messages :).
Carbon cycles are move valuable than silicon cycles, the Ruby
implementation largely exists already, I think there is no reason to feel
bad for not rewriting in any other language.

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

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Sun, Oct 4, 2015 at 2:24 PM, Stefan Salewski <span dir=3D"ltr">&lt;<=
a href=3D"mailto:mail AT ssalewski DOT de" target=3D"_blank">mail AT ssalewski DOT de</a>=
&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px=
 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);bor=
der-left-style:solid;padding-left:1ex">On Sun, 2015-10-04 at 13:16 -0800, B=
ritton Kerin (<br>
<a href=3D"mailto:britton DOT kerin AT gmail DOT com">britton DOT kerin AT gmail DOT com</a>) [vi=
a <a href=3D"mailto:geda-user AT delorie DOT com">geda-user AT delorie DOT com</a>] wrote=
:<br>
<br>
[...]<br>
<span class=3D""><br>
<br>
&gt; Well I thought it was all really exciting, but it wasn&#39;t obvious h=
ow it<br>
&gt; could be integrated with pcb (being in Ruby).=C2=A0 But now some serio=
us efforts<br>
&gt; are being considere to make a much more accessible file format (via sq=
l and<br>
&gt; YAML) so it could be provided as a stand-alone tool that would be usef=
ul to<br>
&gt; pcb users.<br>
&gt;<br>
<br>
</span>If the router could route all traces, we could simply import the tra=
ces.<br>
That is what I did for the example picture. Better is a very basic GUI<br>
tool, where we can move elements and grab rubberbands and move them.<br>
<span class=3D""><br>
&gt;<br>
&gt; &gt; &gt; People seem to prefer manually routing, and many seem to not=
 like<br>
&gt; &gt; &gt; curved traces.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I do not really understand your term &quot;intra-layer&quot;=
. My router is using<br>
&gt; &gt; &gt; arbitrary numbers of layers, and it connect the layers with<=
br>
&gt; &gt; &gt; automatically placed vias. Testing was done with two layers.=
 I have<br>
&gt; &gt; &gt; some problems remembering details, have not touched it for m=
ore than<br>
&gt; &gt; &gt; too years. I think no crashes. The problem is, that there ca=
n remain<br>
&gt; &gt;<br>
&gt;<br>
&gt; Great!=C2=A0 I had the impression from pics on your site and something=
 Kai said<br>
&gt; that just the rubber band part was done.<br>
<br>
</span>The layer assignment was described in detail in the thesis, it was e=
asy<br>
coding that, and it works not bad. But there is room for improvement,<br>
but I forgot details. But I think I will be able to remember when I work<br=
>
again on that.<br>
<span class=3D""><br>
&gt;<br>
&gt;<br>
&gt; &gt; &gt; unrouted traces due to space constraints. So some user inter=
action<br>
&gt; &gt; &gt; would be needed, for example for moving parts. Coding that p=
art would<br>
&gt; &gt; &gt; be the fastest way to make that router useful, but coding th=
at part is<br>
&gt; &gt; &gt; not really much fun and take some time. And when no one is i=
nterested<br>
&gt; &gt; &gt; at all? Making the router working without user interaction m=
ay be more<br>
&gt; &gt; &gt; interesting, that would include moving components. But that =
is more<br>
&gt; &gt; &gt; difficult and would need some time for coding.<br>
&gt; &gt;<br>
&gt;<br>
&gt; I take it the remaining traces are really hard to subsequently add by<=
br>
&gt; hand?=C2=A0 Are there options other than moving parts to make is usefu=
l, maybe<br>
&gt; somehow less ambitious or cost function rewards &quot;ports&quot; or s=
omething?<br>
<br>
</span>Importing the traces in PCB program and then fixing it would be<br>
generally possible, but not really nice. When we have curved traces from<br=
>
autorouter, we generally do not want some straight manually inserted<br>
once. For the example pictures I have painted the missing unrouted<br>
traces in white color, you can see that generally manually fixing is not<br=
>
hard -- insert some vias, rearrange some traces. But a tool that can<br>
handle rubberbands well would be nice for that.<br>
<br>
Another unsolved task is feeding trace parameters like trace width and<br>
clearance into the router. Generally that is not equal for all traces.<br>
My initial idea was taking these parameters from the schematic, but an<br>
editing option for the router would be fine, which may need GUI support.<br=
></blockquote><div><br></div><div style=3D"">I think pcb has defaults for t=
hese, and saves them in each file also as overrides.=C2=A0 So they could be=
 gotten from an existing pcb file.=C2=A0 Or is making the router implement =
different parameters the hard part?</div><div>=C2=A0</div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;bo=
rder-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span class=3D"">&gt;<br>
&gt;<br>
&gt; &gt; &gt; But I think I will continue at some time. The code is easy, =
short, and<br>
&gt; &gt; &gt; mostly based on that PhD thesis. But I have never cleaned it=
 up<br>
&gt; &gt; &gt; unfortunately, and for latest CGAL and Ruby 2.2 some fixes m=
ay be<br>
&gt; &gt; &gt; necessary. Porting to Nim would be nice, but for that I woul=
d have to<br>
&gt; &gt; &gt; create bindings for CGAL first. Porting to C++ would be an o=
ption too<br>
&gt; &gt; &gt; of course, then I need no CGAL bindings, and integration in =
PCB program<br>
&gt; &gt; &gt; is easier. But that would be no fun for me.<br>
&gt; &gt;<br>
&gt;<br>
&gt; I would rather it stay Ruby, rather than be ported to any of those oth=
er<br>
&gt; things.=C2=A0 In addition to not being fun it would make it less acces=
sible I<br>
&gt; think.=C2=A0 I looked at the Ruby at the time and it seemed quite nice=
.<br>
<br>
</span>Ruby seems to be not that popular any more, most people prefer Pytho=
n<br>
now. With Nim the code would look similar nice, but speed would be at<br>
least ten times faster. Routing the demos took a few seconds in Ruby,<br>
but for really large boards speed can become important.<br></blockquote><di=
v><br></div><div style=3D"">TIOBE showing Ruby still gaining=C2=A0<a href=
=3D"http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">http:=
//www.tiobe.com/index.php/content/paperinfo/tpci/index.html</a></div><div s=
tyle=3D"">I didn&#39;t mind it except it&#39;s error message are bad compar=
ed to perl (which desperately needs its smart error messages :).</div><div =
style=3D"">Carbon cycles are move valuable than silicon cycles, the Ruby im=
plementation largely exists already, I think there is no reason to feel bad=
 for not rewriting in any other language.</div></div></div></div>

--001a11c262d82121260521526935--

- Raw text -


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