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: Wed, 11 Jul 2012 23:18:32 +0200 From: Gabriel Paubert To: geda-user AT delorie DOT com Subject: Re: [geda-user] pcb_(f)printf Message-ID: <20120711211832.GA9292@visitor2.iram.es> References: <4FFDD696 DOT 3090509 AT estechnical DOT co DOT uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4FFDD696.3090509@estechnical.co.uk> User-Agent: Mutt/1.5.20 (2009-06-14) X-SPF-Received: 2 X-Spamina-Bogosity: Ham 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 Precedence: bulk On Wed, Jul 11, 2012 at 08:40:06PM +0100, Ed Simmons wrote: > Hi Geda List, > > I'm writing my own geda HID (an exporter for pick and place) and > I've started out with the BOM exporter. > > Looking at the source for pcb_(f)printf it's not obvious how I'd go > about using this to output the data in the form I need, I'm looking > to output the centroid location data in hundredths of mm. > > Here's what I'm testing so far: > > pcb_fprintf(fp, "3 : 230: 1: 3: 0:F 1X %.2mMY %.2mMA %gR %s %s %s\n", > x , y, theta * 10, name, value, FRONT (element) == 1 ? > "top" : "bot"); > > This seems to output mixed units, some in MM and some in Mils. Surprising. But I suspect that you want a lowercase m in the format to force mm output. Uppercase M tries to select automatically an unit in the metric family, as far as I understand. > Please ignore the fact I'm printing a half-line of garbage before > the data we're interested in, the pnp file format is weird and I > haven't completely deciphered it yet. > > The BOM exproter contains > > pcb_fprintf (fp, "%m+%s,\"%s\",\"%s\",%.2mS,%.2mS,%g,%s\n", > xy_unit->allow, name, descr, value, x, y, > theta, FRONT (element) == 1 ? "top" : "bottom"); > > I'm not folowing the use of the unit here - I fail to see how it > works, but it does, and I'm having trouble replicating this and > getting metric units in hundredths of mm. It works by passing the unit through the %m+ mechanism, which limits the choice of units of the following %.2mS (the bom exporter has options to chose the units). But if all you want is mm with 2 fractional digits, use %.2mm. Gabriel