Mail Archives: geda-user/2012/07/07/07:30:51
On Sat, Jul 07, 2012 at 12:41:56PM +0200, Peter Stuge wrote:
> Gabriel Paubert wrote:
> > @@ -668,7 +695,7 @@ gerber_set_layer (const char *name, int group, int empty)
> > }
> > /* Notice the last zeroes are literal zeroes here, a *
> > * x10 scale factor. v v */
> > - pcb_fprintf (f, "X%06.0ml0Y%06.0ml0\r\n",
> > + pcb_fprintf (f, metric ? "X%06.0muY%06.0mu\r\n" : "X%06.0ml0Y%06.0ml0\r\n",
> > gerberDrX (PCB, pending_drills[i].x),
> > gerberDrY (PCB, pending_drills[i].y));
>
> It seems there is a whitespace error in this hunk.
Surprising, but I'll check. (I'm not on the machine with the git repository
right now).
>
>
> > @@ -996,13 +1025,13 @@ gerber_draw_line (hidGC gc, Coord x1, Coord y1, Coord x2, Coord y2)
> > {
> > m = true;
> > lastX = x1;
> > - pcb_fprintf (f, "X%.0mc", gerberX (PCB, lastX));
> > + print_xcoord (f, PCB, lastX);
> > }
> > if (y1 != lastY)
> > {
> > m = true;
> > lastY = y1;
> > - pcb_fprintf (f, "Y%.0mc", gerberY (PCB, lastY));
> > + print_ycoord (f, PCB, lastY);
> > }
> > if ((x1 == x2) && (y1 == y2))
> > fprintf (f, "D03*\r\n");
>
> What exactly is the relation between pcb_fprintf() -> print_*coord()
> in the context of enabling the mm/imp option?
>
> print_*coord() don't seem to be conditional on the setting anyway, so
> could that change be moved to a separate commit, preceding the one
> that adds the mm option?
I don't think so: when the option is parsed 3 static variables are set:
metric, x_convspec, and y_convspec. print_?coord uses ?_convspec, this
avoids tests of the metric boolean in the generated code, there are
already enough ternary ?: operators on metric.
The macro was not strictly necessary, but this limits the number
of redundancies in every line ?_convspec, gerber?. These are always
the source of cut and paste errors.
Gabriel
>
>
> //Peter
- Raw text -