[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gEDA: Carping about PCB's Grid units
Hi PCB developers --
First off, thanks to Dan for fixing a problem I was having with PCB
offline. I am up and running thanks to his timely recommendation. Now
that I am using PCB for the first time, you will probably hear more from me
than you would like. :-)
Todays whine is this: According to the PCB documentation, "all distances
and sizes in Pcb are measured in mils (0.001 inch)." However, after
editing my *.pcb file to set the board size and grid spacing, I found that
these parameters are specified in the file in units of .01 mils. That is,
a 1" x 1" board is specified in the .pcb file by:
PCB["" 100000 100000]
A similar situation holds for Grid & Cursor.
I did a quick grep through the source. Yep, in parse_y.c, we have
constructs like:
parse_y.c: yyPCB->GridOffsetX = yyvsp[-2].number*100;
parse_y.c: yyPCB->GridOffsetX = yyvsp[-3].number*100;
parse_y.c: yyPCB->GridOffsetX = yyvsp[-3].number*100;
parse_y.c: yyPCB->GridOffsetX = yyvsp[-3].number;
(BTW: What's up with the fourth line?)
This means that measurements associated with GridOffsetX (as well as other
parameters) are scaled by 100 before use. That implies that the units are
not strictly mils everywhere.
Three suggestions:
1. This info could go into the documentation, in the "resources" section.
That is, the units used in each line could be specified, instead of just
"number".
2. The easiest way to clarify this is to put some comments into the .pcb
file itself which spell out the units for each of the lines. That is, make
the .pcb file self-documenting. I think this would actually go into the
pcb.scm file; I can take a look at this.
3. Umm, how easy would this be to fix the units confusion in the source?
That is, just make the units mils everywhere, including in the .pcb file
and in the source. I realize this would "break" the current file format,
so this might be a non-starter.
I wouldn't mind fixing the documentation, if requested. What are your
thoughts?
My object here is not to needlessly complain, but rather to improve PCB by
identifying problems and making the experience easier for the newbie.
Thanks,
Stuart