delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2012/07/11/17:19:02

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 <paubert AT iram DOT es>
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
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

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

- Raw text -


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