delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2012/07/09/18:46:25

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
X-Envelope-From: paubert AT iram DOT es
Date: Tue, 10 Jul 2012 00:45:59 +0200
From: Gabriel Paubert <paubert AT iram DOT es>
To: geda-user AT delorie DOT com
Subject: Re: [geda-user] [PATCH] Allow to create metric Gerber and drill
files, hopefully final version.
Message-ID: <20120709224559.GB4355@visitor2.iram.es>
References: <20120703140236 DOT GA12646 AT visitor2 DOT iram DOT es>
<CAKakQcdTgG6E2h+UgWoh-ujP6vFDH=voY-PBJR3OFG2awqL0_A AT mail DOT gmail DOT com>
<20120705101614 DOT GA19974 AT visitor2 DOT iram DOT es>
<20120706202633 DOT GA28355 AT malakian DOT lan>
<20120706213340 DOT GA30622 AT visitor2 DOT iram DOT es>
<20120707104156 DOT 17641 DOT qmail AT stuge DOT se>
<20120708042719 DOT GE1637 AT malakian DOT lan>
MIME-Version: 1.0
In-Reply-To: <20120708042719.GE1637@malakian.lan>
User-Agent: Mutt/1.5.20 (2009-06-14)
X-SPF-Received: 2
X-Spamina-Bogosity: Unsure
X-Spam-Score: -4.4 (----)
X-Spam-Report: Content analysis details: (-4.4 points)
pts rule name description
---- ---------------------- --------------------------------------------------
-1.8 ALL_TRUSTED Passed through trusted hosts only via SMTP
-2.6 BAYES_00 BODY: Bayesian spam probability is 0 to 1%
[score: 0.0003]
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

On Sat, Jul 07, 2012 at 09:27:20PM -0700, Andrew Poelstra wrote:
> 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.
> >
> 
> Nope, it was actually the old whitespace that was wrong, hence
> the funny-looking patch.
> 
> However, the v's above are supposed to point to the extra 0's
> on the imperial string, which I fixed. That is the only change
> I made before pushing the patch.

Thanks for pointing this out, I completely missed it, but I think 
that they point to the wrong 0 when looking at the source. 

Corrected in the following, with a fix for octogonal apertures
in which I did a mistake and ended up with two metric conversion
specifications. Note that I have touched a bit the whitespace at
the beginning of the comments so that they start with a tab like
the surrounding code lines.

Now what would be the right solution to produce ncdrill files
with 0.1 mil resolution?

Adding a new conversion specifier ?
(%md is taken, %mh for hole, %mX for eXcellon?)

The fact that imperial Gerber have 2 orders or magnitude better
resolution than the associated drill is a problem (25.4µm versus
0.254µm). At least metric gives micrometer resolution for both. 

	Gabriel

diff --git a/src/hid/gerber/gerber.c b/src/hid/gerber/gerber.c
index 79c0447..b2567cb 100644
--- a/src/hid/gerber/gerber.c
+++ b/src/hid/gerber/gerber.c
@@ -240,7 +240,7 @@ fprintAperture (FILE *f, Aperture *aptr)
       break;
     case OCTAGON:
       pcb_fprintf (f, metric ? "%%AMOCT%d*5,0,8,0,0,%.3`mm,22.5*%%\r\n"
-	       "%%ADD%dOCT%d*%%\r\n" : "%%AMOCT%d*5,0,8,0,0,%.3`mm,22.5*%%\r\n"
+	       "%%ADD%dOCT%d*%%\r\n" : "%%AMOCT%d*5,0,8,0,0,%.4`mi,22.5*%%\r\n"
 	       "%%ADD%dOCT%d*%%\r\n", aptr->dCode,
 	       (Coord) ((double) aptr->width / COS_22_5_DEGREE), aptr->dCode,
 	       aptr->dCode);
@@ -693,8 +693,8 @@ gerber_set_layer (const char *name, int group, int empty)
 	      Aperture *ap = findAperture (curr_aptr_list, pending_drills[i].diam, ROUND);
 	      fprintf (f, "T%02d\r\n", ap->dCode);
 	    }
-          /* Notice the last zeroes are literal zeroes here, a x10 scale factor.  *
-           *                                                      v        v      */
+	  /* Notice the last zeroes are literal zeroes here, a x10 scale factor.  *
+	   *                                                         v        v   */
 	  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));

- Raw text -


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