Re: gEDA-user: next PCB release - 1.99za vs 4.0

2010-09-14 Thread Andrew Poelstra
On Tue, Sep 14, 2010 at 10:34:23PM -0500, John Griessen wrote:
> On 09/13/2010 05:07 PM, John Doty wrote:
> >
> >On Sep 13, 2010, at 2:27 PM, DJ Delorie wrote:
>  So let me rephrase: Why have seven geometric holes,
> >>one for each layer, when we can have one geometric hole applied to the 
> >>whole composite?
> 
> >My notion is that you need a general mechanism to align objects between 
> >layers.
> 
>  Having such a mechanism, you should then use it universally. If
> >you bypass general general mechanisms for special cases, you risk creating a 
> >mess
> where general automation procedures fail in
> >those special cases.
> 
> John D has something here -- suppose we start using pcb to model the physical 
> in
> a way that is used to analyze layer stack up alignment of weirdly processed 
> layers?
> For instance layers that get folded and stretch some, and so need alignment 
> checking?
> 
> Perhaps holes get made in one stroke still, but the via pads need a tolerance 
> to be able
> to hit them close enough to their centers with the drill.   Perhaps holes 
> don't even all
> get made in one stroke!  I heard about microvias being made with UV lasers 
> that would be on just a few layers.
> Also there is  a max feasible aspect ratio to a via hole width vs. its depth 
> to drill with carbide bits.
> Some board makers said they handle this by drilling in from both sides.  Take 
> it a little further
> and you make two composites separately drilled, then bond together
> 
> Sure, all of this is far out, but still worth planning for.
>

I -think- that all these cases are accounted for with:

  1. DJ's composite idea
  2. Distinct canvas/layer structure with tagging
  3. Custom vias

At the very least, we're on the right track.

For custom vias, we will probably want to allow drills in footprints.


Andrew



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: next PCB release - 1.99za vs 4.0

2010-09-14 Thread John Griessen

On 09/13/2010 05:07 PM, John Doty wrote:


On Sep 13, 2010, at 2:27 PM, DJ Delorie wrote:

 So let me rephrase: Why have seven geometric holes,

one for each layer, when we can have one geometric hole applied to the whole 
composite?



My notion is that you need a general mechanism to align objects between layers.


 Having such a mechanism, you should then use it universally. If

you bypass general general mechanisms for special cases, you risk creating a 
mess

where general automation procedures fail in

those special cases.


John D has something here -- suppose we start using pcb to model the physical in
a way that is used to analyze layer stack up alignment of weirdly processed 
layers?
For instance layers that get folded and stretch some, and so need alignment 
checking?

Perhaps holes get made in one stroke still, but the via pads need a tolerance 
to be able
to hit them close enough to their centers with the drill.   Perhaps holes don't 
even all
get made in one stroke!  I heard about microvias being made with UV lasers that 
would be on just a few layers.
Also there is  a max feasible aspect ratio to a via hole width vs. its depth to 
drill with carbide bits.
Some board makers said they handle this by drilling in from both sides.  Take 
it a little further
and you make two composites separately drilled, then bond together

Sure, all of this is far out, but still worth planning for.

John Griessen


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: (hierarchy-uref-mangle "disabled") doesn't seem to work when generting a bom

2010-09-14 Thread kai-martin knaak
Mike Crowe wrote:

> I resolved this issue (given enough time even a monkey can solve his
> problems!).  I'm posting just for future reference.

Did you post a big report? 

 
> The separator appears to be important even if it is disabled by 
> (hierarchy-uref-mangle "disabled")

Ouch. Magic characters hitting again?
 
---<)kaimartin(>---
-- 
Kai-Martin Knaak
Öffentlicher PGP-Schlüssel:
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6C0B9F53



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: next PCB release - 1.99za vs 4.0

2010-09-14 Thread Frank Bergmann

On 12.09.2010 00:20, Peter Clifton wrote:

(Can someone who uses / has used keepouts on another package describe
for me how they work, or how you use them?)


(In our company we are using a 5 year old package that has support for 
keepouts. It has pre-defined one keepout layer where the user can draw 
areas/polygons. Such an area can be referred to one or more layer. If an 
object on one of the referred layers is in that area the user gets a drc 
error.


I, for example, used that for the tracks for the "miniature wave 
selective soldering". Placed the tracks as areas and assigned the silk 
and paste (for this board only smt parts had paste layer) layer to it. 
Now I got errors if I placed parts in the soldering tracks. Copper are 
allowed because it was covered by solder mask.)


Frank.



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: (hierarchy-uref-mangle "disabled") doesn't seem to work when generting a bom

2010-09-14 Thread Mike Crowe
Hi all

I resolved this issue (given enough time even a monkey can solve his
problems!).  I'm posting just for future reference.

I was using 
(hierarchy-uref-separator "_")
instead of
(hierarchy-uref-separator "/")

The separator appears to be important even if it is disabled by 
(hierarchy-uref-mangle "disabled")

By keeping the separator as a "/" everything works.  

I was also wrong to say that the operation was different for gnetlist
and gsch2pcb.  The operation appears to be the same.






On Thu, 2010-09-02 at 15:40 -0500, Mike Crowe wrote:
> Hello group
> 
> I am doing my first hierarchial design.  In my local gnetlistrc I have
> (hierarchy-uref-mangle "disabled") un-commented as I don't want the Sn_
> in the front of the uref.
> 
> gsch2pcb does what I desire and correctly drops the "Sn_" prefix.
> 
> When generating a bom.  The prefix is not dropped which is NOT what I
> want.
> 
> If I change from
> (hierarchy-uref-order "append")
> to
> (hierarchy-uref-order "prepend")
> 
> The Sn_ value is placed at the end, so gnetlistrc seem to be picked up,
> but I'm not sure where as I don't see it in the .scm that I'm using. 
> 
> My command line syntax is
> gnetlist -g xmlbom circuit.sch -o circuit-bom.xml
> 
> I tried the nomunge option, but it didn't seem to have any effect.
> 
> gnetlist --nomunge -g xmlbom circuit.sch -o circuit-bom.xml
> 
> Yes, I am using a scheme that I hacked from gnet-bom(2?).scm  (see
> attached).  So I'm probably at fault, but I don't know where.  
> 
> Could anyone give me some pointers as to what I'm doing wrong?
> 
> Thanks in advance
> Mike
> 
> 
> 
> 
> 
> 
> 
> 
> ___
> geda-user mailing list
> geda-user@moria.seul.org
> http://www.seul.org/cgi-bin/mailman/listinfo/geda-user



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: next PCB release - 1.99za vs 4.0

2010-09-14 Thread Andrew Poelstra
On Tue, Sep 14, 2010 at 02:57:31PM -0400, Windell H. Oskay wrote:
> >
> > I like "canvas" - it's a more popular idiom than cel.
> 
> Indeed it is.
> 
> My concern about "canvas" is that it does not convey a relationship to our
> physical layers. In some cases it would be reasonable to expect a "canvas"
> to refer a full layer or even to a stack of layers.   IMHO, it would be
> beneficial if the term chosen connotates "sublayer" rather than layer or
> stack of layers.
> 
> Another couple of suggestions:
> 
>  - Sublayer
>   It's straightforward
>

There are some cases where it doesn't quite make sense - you could have
a sublayer mapped to two layers, for example. Plus it sounds too close to
"layer" and might be confusing in conversation.

 
>  - Sheet
>   A common metaphor in engineering-- it would make sense if there were
> multiple sheets to specify the details of each physical layer. 
> Anti-copper sheet, digital keep-out sheet, anti-mask sheet, etc.  This
> name would lend itself naturally to printed documentation for a project.
> 

I really like this.


Andrew



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: next PCB release - 1.99za vs 4.0

2010-09-14 Thread Windell H. Oskay
>
> I like "canvas" - it's a more popular idiom than cel.

Indeed it is.

My concern about "canvas" is that it does not convey a relationship to our
physical layers. In some cases it would be reasonable to expect a "canvas"
to refer a full layer or even to a stack of layers.   IMHO, it would be
beneficial if the term chosen connotates "sublayer" rather than layer or
stack of layers.

Another couple of suggestions:

 - Sublayer
  It's straightforward

 - Sheet
  A common metaphor in engineering-- it would make sense if there were
multiple sheets to specify the details of each physical layer. 
Anti-copper sheet, digital keep-out sheet, anti-mask sheet, etc.  This
name would lend itself naturally to printed documentation for a project.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: next PCB release - 1.99za vs 4.0

2010-09-14 Thread DJ Delorie

I like "canvas" - it's a more popular idiom than cel.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: next PCB release - 1.99za vs 4.0

2010-09-14 Thread Windell H. Oskay

On Sep 14, 2010, at 7:23 AM, Andrew Poelstra wrote:

> On Mon, Sep 13, 2010 at 10:20:52PM -0400, Matthew Sager wrote:
>>> [*] We need a better term for drawing layers, since "layer" means
>>> something specific in PCB design.  Or another name for physical
>>> layers.  Or something ;-)
>>> 
>> 
>> How about "overlay"?
>> 
>>   "Canvas" comes to mind.  It hints that you draw on it.  Or this could
>>   just be the fact that I have a painting that I need to finish.
> 
> Canvas sounds good to me, too. Overlay feels like a more
> "circuity" word, but either one would be fine by me.

Another good metaphor might be that of the Cel, from hand-drawn animation:

A stack of cels makes up a layer?

http://en.wikipedia.org/wiki/Cel



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Functional blocks and PCB format changes

2010-09-14 Thread gedau
On Mon, Sep 13, 2010 at 11:26:28AM -0400, Joshua Boyd wrote:
> On Fri, Sep 03, 2010 at 09:08:25PM -0700, Andrew Poelstra wrote:
> > XML is far too heavy, agreed, and it's signal-to-noise ratio is abysmal.
> > I think that using a Lisp (or Lispy-looking) format would be extensible,
> > easy to parse, and make the most people happy.
> 
> Allow me to toss out JSON.  It is about as light weight as using S-EXP,
> but politically it isn't tied down by references to Lisp.  Plus, since
> it has become fairly popular, there are good readers/writers for most
> languages. 
> 
> The format is defined at: http://www.json.org/  
> 

Recently I had to implement multiple output formats for a project of 
mine, including xml, JSON and plist (property list). After that session, 
for simple trees, I'd prefer plist over JSON. Myabe it's just me but i 
found it more readable for the human eye (independent of the 
indentation).

Regards,

Tibor Palinkas





___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: next PCB release - 1.99za vs 4.0

2010-09-14 Thread Andrew Poelstra
On Mon, Sep 13, 2010 at 10:20:52PM -0400, Matthew Sager wrote:
>> [*] We need a better term for drawing layers, since "layer" means
>> something specific in PCB design.  Or another name for physical
>> layers.  Or something ;-)
>>
> 
>  How about "overlay"?
> 
>"Canvas" comes to mind.  It hints that you draw on it.  Or this could
>just be the fact that I have a painting that I need to finish.

Canvas sounds good to me, too. Overlay feels like a more
"circuity" word, but either one would be fine by me.


Andrew



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Functional blocks and PCB format changes

2010-09-14 Thread Stephan Boettcher
Phil Frost  writes:

> I would point out a valid YAML representation of the above is also:
>
> {pin: {pinNumber: 2, pinName: rst, x1: 1234, y1: 4321, x2: 2345, y2: 4321, 
> layer: component}}

> Neither sed nor awk can process XML or YAML the right way in all cases
> without reimplementing a libyaml or libxml in sed or awk.

This one-line form is pretty accessible to sed and awk.

I'd write an awk script that transforms arbitrary YAML into this form,
and include that in any commandline pipe of one-liner processing.  At
the next save from PCB it will be back to the original format, so that
subversion diff will happy. I like that format.

-- 
Stephan



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Functional blocks and PCB format changes

2010-09-14 Thread Phil Frost
On Mon, Sep 13, 2010 at 04:25:49PM -0700, Steven Michalske wrote:
> pin:
>   pinNumber: 2
>   pinName: "rst"
>   x1: 1234
>   y1: 4321
>   x2: 2345
>   y2: 4321
>   layer: component
> 
> or
> 2"rst"<\pinName>1234<\x1>4321<\y1>2345<\x2>5432<\y2>component<\layer><\pin>

I would point out a valid YAML representation of the above is also:

{pin: {pinNumber: 2, pinName: rst, x1: 1234, y1: 4321, x2: 2345, y2: 4321, 
layer: component}}

and also:

{pin: {pinNumber:
 2, pinName: rst,
x1: 1234, y1\
 : 
4321, x2: 2345, y2: 4321, layer: compo\
nent}}

A valid XML representation, using a slightly different schema, is:



XML and YAML are equally capable of being made unreadable. Either can be
made more readable by defining a reasonable schema and selecting a
clueful output library.

Neither sed nor awk can process XML or YAML the right way in all cases
without reimplementing a libyaml or libxml in sed or awk.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


gEDA-user: gschem : minor beautification

2010-09-14 Thread Camille Delbegue
Hello,

This patch place the scrollbars and the drawing area in a table, this prevents
that the scrollbars doesn't intersect in the bottom right corner.

-- 
Kam
diff --git a/gschem/include/prototype.h b/gschem/include/prototype.h
index 5948c74..c0fc760 100644
--- a/gschem/include/prototype.h
+++ b/gschem/include/prototype.h
@@ -854,7 +854,7 @@ gint x_stroke_translate_and_execute (GSCHEM_TOPLEVEL *w_current);
 void x_window_setup (GSCHEM_TOPLEVEL *w_current);
 void x_window_setup_gc(GSCHEM_TOPLEVEL *w_current);
 void x_window_free_gc(GSCHEM_TOPLEVEL *w_current);
-void x_window_create_drawing(GtkWidget *drawbox, GSCHEM_TOPLEVEL *w_current);
+void x_window_create_drawing(GtkWidget *draw_table, GSCHEM_TOPLEVEL *w_current);
 void x_window_setup_draw_events(GSCHEM_TOPLEVEL *w_current);
 void x_window_create_main(GSCHEM_TOPLEVEL *w_current);
 void x_window_close(GSCHEM_TOPLEVEL *w_current);
diff --git a/gschem/src/x_window.c b/gschem/src/x_window.c
index 07beb6e..485df94 100644
--- a/gschem/src/x_window.c
+++ b/gschem/src/x_window.c
@@ -98,27 +98,20 @@ void x_window_free_gc(GSCHEM_TOPLEVEL *w_current)
  *  \par Function Description
  *
  */
-void x_window_create_drawing(GtkWidget *drawbox, GSCHEM_TOPLEVEL *w_current)
+void x_window_create_drawing(GtkWidget *draw_table, GSCHEM_TOPLEVEL *w_current)
 {
   /* drawing next */
   w_current->drawing_area = gtk_drawing_area_new ();
-  /* Set the size here.  Be sure that it has an aspect ratio of 1.333
-   * We could calculate this based on root window size, but for now
-   * lets just set it to:
-   * Width = root_width*3/4   Height = Width/1.33
-   * 1.333 is the desired aspect ratio!
-   */
 
-  gtk_drawing_area_size (GTK_DRAWING_AREA (w_current->drawing_area),
- w_current->win_width,
- w_current->win_height);
+  gtk_widget_set_size_request (GTK_WIDGET (w_current->drawing_area),
+   160, 120);
 
-  gtk_box_pack_start (GTK_BOX (drawbox), w_current->drawing_area,
-  TRUE, TRUE, 0);
-  GTK_WIDGET_SET_FLAGS (w_current->drawing_area, GTK_CAN_FOCUS );
-  gtk_widget_grab_focus (w_current->drawing_area);
-  gtk_widget_show (w_current->drawing_area);
+  gtk_table_attach_defaults (GTK_TABLE (draw_table), w_current->drawing_area,
+ 0, 1, 0, 1);
+
+  gtk_widget_set_can_focus (w_current->drawing_area, TRUE);
 
+  gtk_widget_grab_focus (w_current->drawing_area);
 }
 
 /*! \todo Finish function documentation!!!
@@ -247,7 +240,7 @@ void x_window_create_main(GSCHEM_TOPLEVEL *w_current)
   GtkWidget *label=NULL;
   GtkWidget *main_box=NULL;
   GtkWidget *menubar=NULL;
-  GtkWidget *drawbox=NULL;
+  GtkWidget *draw_table=NULL;
   GtkWidget *bottom_box=NULL;
   GtkWidget *toolbar=NULL;
   GtkWidget *handlebox=NULL;
@@ -258,12 +251,16 @@ void x_window_create_main(GSCHEM_TOPLEVEL *w_current)
   w_current->main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 
   gtk_widget_set_name (w_current->main_window, "gschem");
-  gtk_window_set_policy (GTK_WINDOW (w_current->main_window), TRUE, TRUE, TRUE);
-
-  /* We want the widgets to flow around the drawing area, so we don't
-   * set a size of the main window.  The drawing area's size is fixed,
-   * see below
+  
+  /* Set the size here.  Be sure that it has an aspect ratio of 1.333
+   * We could calculate this based on root window size, but for now
+   * lets just set it to:
+   * Width = root_width*3/4   Height = Width/1.33
+   * 1.333 is the desired aspect ratio!
*/
+  gtk_window_set_default_size (GTK_WINDOW (w_current->main_window),
+   w_current->win_width,
+   w_current->win_height);
 
/* 
 * normally we let the window manager handle locating and sizing
@@ -275,9 +272,9 @@ void x_window_create_main(GSCHEM_TOPLEVEL *w_current)
	gtk_widget_set_uposition (w_current->main_window, 10, 10);
 
   /* this should work fine */
-  gtk_signal_connect (GTK_OBJECT (w_current->main_window), "delete_event",
-  GTK_SIGNAL_FUNC (i_callback_close_wm),
-  w_current);
+  g_signal_connect (G_OBJECT (w_current->main_window), "delete_event",
+G_CALLBACK (i_callback_close_wm),
+w_current);
 
   /* Containers first */
   main_box = gtk_vbox_new(FALSE, 1);
@@ -408,51 +405,47 @@ void x_window_create_main(GSCHEM_TOPLEVEL *w_current)
   /*  Try to create popup menu (appears in right mouse button  */
   w_current->popup_menu = (GtkWidget *) get_main_popup(w_current);
 
-  drawbox = gtk_hbox_new(FALSE, 0);
-  gtk_container_border_width(GTK_CONTAINER(drawbox), 0);
-  gtk_container_add(GTK_CONTAINER(main_box), drawbox);
 
-  x_window_create_drawing(drawbox, w_current);
-  x_window_setup_draw_events(w_current);
+  draw_table = gtk_table_new (2, 2, FALSE);
+  gtk_box_pack_start (GTK_BOX (main_box), draw_table, TRUE, TRUE, 0);
 
-  if (w_current->scrollbars_flag == TRUE) {
-/*

Re: gEDA-user: Functional blocks and PCB format changes

2010-09-14 Thread Ethan Swint

On 09/13/2010 09:57 PM, Ouabache Designworks wrote:

  pin:
   pinNumber: 2
   pinName: "rst"
   x1: 1234
   y1: 4321
   x2: 2345
   y2: 4321
   layer: component
  or
  2"rst"<\pinName>1234<\x1>4321<\y1>2345<\x2>5432<\y2>component<\layer><\pin>
  I call the second large, bloat, and ugly.
   

I would prefer

rectangle:
type: pin
pinNumber: 2
pinName: "rst"
x1: 1234
y2: 4321
x2: 2345
y2: 4321
layer: component

or


pin
  2<\pinNumber>
  rst
<\type>
  ref92134<\basepos>

  1234<\x>
  4321<\y>
<\loc, ID = 12360>

  <\x>
  0<\y>
<\loc>
<\rectangle>

I'm not exactly sure how the referenced position will work out in XML or the 
first format (yaml?).  Time for me to leave the house - so I'm not sure how 
correct any of this is.




___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Functional blocks and PCB format changes

2010-09-14 Thread Stephan Boettcher
Steven Michalske  writes:

> Now we may want to write a parser, and emitter, but that is a good
> amount of work, to serialize a data structure in the code that could
> be output be a data serializer that just works.

The emitter shall conserve order and formatting (probably not) or at
least be deterministic about it, so that load-save cycles do not screw
with the subversion/git/... diffs. 

-- 
Stephan



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Functional blocks and PCB format changes

2010-09-14 Thread Stephan Boettcher

I prefer:

# -*- makefile -*-

CSA-L%.sch: CSA-1.sch Makefile
sed 's,^\(refdes\|netname\)=,&L$*_,' $< > $@

CSA-N%.sch: CSA-2.sch Makefile
sed 's,^\(refdes\|netname\)=,&N$*_,' $< > $@

FSH-S%.sch: FSH-1.sch Makefile
sed 's,^\(refdes\|netname\)=,&S$*_,' $< > $@

direna-preamp-P%.sch: direna-preamp-1.sch
  sed 's,^\(refdes\|netname\)=,&P$*_,' $< > $@

TFlex-34.pcb: TFlex.pcb Makefile
  sed <$< >$@ 
'/^Element.*\(c1206\|c0805\|c0603\|CWR11B\)/,/^..$$/d;/^Via.* 400 "" 
"".$$/d;/Groups/s/1,c:2,3:4:5:6,7:8,s/1:2,3:4,c:5,s:6,7:8/'

TFlex-16.pcb: TFlex.pcb Makefile
  sed <$< >$@ '/^Element.*Omne/,/^..$$/d;/^Via.* 400 "" "".$$/d'


-- 
Stephan


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user