Re: gEDA-user: Bug in 'FreeRotateBuffer()'? (WAS: Re: Line Thickness in Imported DXF Files; Rotating by Arbitrary Angle; UTF-8)

2011-08-16 Thread Gus Fantanas

On 08/15/2011 04:38 PM, Bert Timmerman wrote:



When I apply 'FreeRotateBuffer()' to that footprint, the big
pad (pin 1) and the silkscreen rotate fine, but the two small
square pads (2 and 3) do not.
Their centers rotate, but the pads themselves do not.  Is it
a bug or did I do something wrong when I created the
footprint?  I have verified the problem with 45° and 60° rotations.

Here is the footprint file.  The guardband is probably overly
liberal, but for now it can do the job for me:


Element["" "" "D?" "" 27500 15000 -6500 9500 0 100 ""]
(
  Pad[-14383 124 -8478 124 13228 2000 14228 "" "1" "square"]
  Pad[4239 3745 4239 3745 5512 2000 6512 "" "2" "square,edge2"]
  Pad[4239 -3499 4239 -3499 5512 2000 6512 "" "3" "square,edge2"]
  ElementLine [-23000 -8500 -23000 8500 500]
  ElementLine [9000 -8500 -23000 -8500 500]
  ElementLine [9000 8500 9000 -8500 500]
  ElementLine [-23000 8500 9000 8500 500]

  )


Congrats with the footprint, some minor caveats though:
--Thank you, Bert.  I think it was the first footprint I created in gEDA 
(thanks again to DJ Delorie for his excellent tutorial on how to 
generate  footprints using PCB, at URL < 
http://www.delorie.com/pcb/docs/gs/gs.html#Your-First-Board >).

I googled for a datasheet and found one from Diodes, page 4 gives 1.39 mm by
1.40 mm for the "left" and "right" pads, so this "FreeRotateBuffer()"
Heisenbug should go away by itself.
--Hm, I guess you are right.  It  would be nice if there was a way 
to draw rectangles and lines from the command window.  Perhaps there is 
one but I don't know about it.  The mouse is nice, but when I click at 
the correct coordinates, the clicking action may cause the mouse to 
shift a bit, so the coordinates entered may not be exactly the intended 
ones.  To counteract this, I try to freeze the cursor at the intended 
coordinates and press ENTER using my other hand, but I think I would 
find it easier to do all  this with a command.

Oh, and the marker is not in the Centre Of Gravity, so no easy
pick-and-place part from a 5000 units / tape&  reel ;-)
--In this case I am in luck because the boards will be built by hand. 
:-)   Thank you for your astute observation, though.  Could PCB 
calculate the center of gravity of the part for me?  Is there any easy 
way to do it?




___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Bug in 'FreeRotateBuffer()'? (WAS: Re: Line Thickness in Imported DXF Files; Rotating by Arbitrary Angle; UTF-8)

2011-08-15 Thread Andrew Poelstra
On Mon, Aug 15, 2011 at 12:17:07PM -0700, Colin D Bennett wrote:
> On Mon, 15 Aug 2011 19:24:34 -0700
> Andrew Poelstra  wrote:
> 
> > On Mon, Aug 15, 2011 at 11:29:59AM -0700, Colin D Bennett wrote:
> > > Because of this bug (it is completely a bug from the user's point of
> > > view), as you suggested I always make my nominally-square pads
> > > slightly non-square.  Usually by +/- 0.01 mil or +/- 0.02 mil, but
> > > that might not be enough for good rotation... hopefully nanometer
> > > conversion will improve that significantly with no extra effort for
> > > us footprint designers.
> > 
> > The problem is that the file-format still saves in cmils. (You can
> > use a text-editor to put the new units in, but then you have problems
> > with backward-compatibility.)
> 
> Perhaps after the nanometer conversion has been thoroughly run through
> its paces in mainline pcb for a while, and we feel it is rock-solid, we
> can add a Preferences option to save .pcb files with coordinates and
> lengths in nm rather than cmil.
>

My thinking on this is to just not break the file-format anymore
until we switch to an extensible one. At that point we'll write
an importer and exporter to the old format -- and this exporter's
output could work with pcb versions back to 2007 (or earlier) just
as pcb does now.

Perhaps the new file format is too far away. (I for one won't
have time to do such a thing until next summer.) But it would be
nice if our current .pcb parser had no more cruft to deal with.

-- 
Andrew Poelstra
Email: asp11 at sfu.ca OR apoelstra at wpsoftware.net
Web:   http://www.wpsoftware.net/andrew/



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Bug in 'FreeRotateBuffer()'? (WAS: Re: Line Thickness in Imported DXF Files; Rotating by Arbitrary Angle; UTF-8)

2011-08-15 Thread Bert Timmerman
Hi Gus and all, 

> -Original Message-
> From: geda-user-boun...@moria.seul.org 
> [mailto:geda-user-boun...@moria.seul.org] On Behalf Of Gus Fantanas
> Sent: Monday, August 15, 2011 5:57 AM
> To: DJ Delorie
> Cc: geda-user@moria.seul.org
> Subject: gEDA-user: Bug in 'FreeRotateBuffer()'? (WAS: Re: 
> Line Thickness in Imported DXF Files; Rotating by Arbitrary 
> Angle; UTF-8)
> 
> On 08/14/2011 03:16 PM, DJ Delorie wrote:
> >> OK, so is there any option in pcb to rotate by an angle 
> other than 90 
> >> degrees?
> > Cut
> >
> > :FreeRotateBuffer(45)
> >
> > Paste
> >
> Thank you so much for your response.
> 
> Using PCB, I created a footprint for the PDS760 Schottky diode
> (PowerDI®5 package).  I have pasted its ASCII file below.  
> When I apply 'FreeRotateBuffer()' to that footprint, the big 
> pad (pin 1) and the silkscreen rotate fine, but the two small 
> square pads (2 and 3) do not.  
> Their centers rotate, but the pads themselves do not.  Is it 
> a bug or did I do something wrong when I created the 
> footprint?  I have verified the problem with 45° and 60° rotations.
> 
> Here is the footprint file.  The guardband is probably overly 
> liberal, but for now it can do the job for me:
> 
> 
> Element["" "" "D?" "" 27500 15000 -6500 9500 0 100 ""]
> (
>  Pad[-14383 124 -8478 124 13228 2000 14228 "" "1" "square"]
>  Pad[4239 3745 4239 3745 5512 2000 6512 "" "2" "square,edge2"]
>  Pad[4239 -3499 4239 -3499 5512 2000 6512 "" "3" "square,edge2"]
>  ElementLine [-23000 -8500 -23000 8500 500]
>  ElementLine [9000 -8500 -23000 -8500 500]
>  ElementLine [9000 8500 9000 -8500 500]
>  ElementLine [-23000 8500 9000 8500 500]
> 
>  )
> 

Congrats with the footprint, some minor caveats though:

I googled for a datasheet and found one from Diodes, page 4 gives 1.39 mm by
1.40 mm for the "left" and "right" pads, so this "FreeRotateBuffer()"
Heisenbug should go away by itself.

Oh, and the marker is not in the Centre Of Gravity, so no easy
pick-and-place part from a 5000 units / tape & reel ;-)

@KMK: there are no "half bugs", bugs are boolean by nature, so either "0" or
"1" should do ;-)

Kind regards,

Bert Timmerman.






___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Bug in 'FreeRotateBuffer()'? (WAS: Re: Line Thickness in Imported DXF Files; Rotating by Arbitrary Angle; UTF-8)

2011-08-15 Thread Colin D Bennett
On Mon, 15 Aug 2011 19:24:34 -0700
Andrew Poelstra  wrote:

> On Mon, Aug 15, 2011 at 11:29:59AM -0700, Colin D Bennett wrote:
> > Because of this bug (it is completely a bug from the user's point of
> > view), as you suggested I always make my nominally-square pads
> > slightly non-square.  Usually by +/- 0.01 mil or +/- 0.02 mil, but
> > that might not be enough for good rotation... hopefully nanometer
> > conversion will improve that significantly with no extra effort for
> > us footprint designers.
> 
> The problem is that the file-format still saves in cmils. (You can
> use a text-editor to put the new units in, but then you have problems
> with backward-compatibility.)

Perhaps after the nanometer conversion has been thoroughly run through
its paces in mainline pcb for a while, and we feel it is rock-solid, we
can add a Preferences option to save .pcb files with coordinates and
lengths in nm rather than cmil.

Regards,
Colin


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Bug in 'FreeRotateBuffer()'? (WAS: Re: Line Thickness in Imported DXF Files; Rotating by Arbitrary Angle; UTF-8)

2011-08-15 Thread Andrew Poelstra
On Mon, Aug 15, 2011 at 11:29:59AM -0700, Colin D Bennett wrote:
> On Mon, 15 Aug 2011 15:50:23 +0200
> Kai-Martin Knaak  wrote:
> 
> > Gus Fantanas wrote:
> > 
> > > Is it a bug or 
> > > did I do something wrong when I created the footprint? 
> > 
> > It is half a bug. Exactly square pads are defined by two points that 
> > coincide. There is no orientation attached to this. So PCB assumes
> > the square shape should be aligened along the axis of the grid. After
> > the rotation transform was applied to the two points, they still
> > coincide. Consequently PCB insists to render them like before.
> > 
> > The work-around is to make the pads slightly non-square. Then 
> > There are rounding glitches, though. If the two points differ by too 
> > little distance, the resulting shape renders not quite in the
> > expected angle.
> 
> Because of this bug (it is completely a bug from the user's point of
> view), as you suggested I always make my nominally-square pads slightly
> non-square.  Usually by +/- 0.01 mil or +/- 0.02 mil, but that might not
> be enough for good rotation... hopefully nanometer conversion will
> improve that significantly with no extra effort for us footprint
> designers.
>

The problem is that the file-format still saves in cmils. (You can
use a text-editor to put the new units in, but then you have problems
with backward-compatibility.)

But I second "this is a bug". It is just a bug with no non-breaking
solution.

-- 
Andrew Poelstra
Email: asp11 at sfu.ca OR apoelstra at wpsoftware.net
Web:   http://www.wpsoftware.net/andrew/



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Bug in 'FreeRotateBuffer()'? (WAS: Re: Line Thickness in Imported DXF Files; Rotating by Arbitrary Angle; UTF-8)

2011-08-15 Thread Colin D Bennett
On Mon, 15 Aug 2011 15:50:23 +0200
Kai-Martin Knaak  wrote:

> Gus Fantanas wrote:
> 
> > Is it a bug or 
> > did I do something wrong when I created the footprint? 
> 
> It is half a bug. Exactly square pads are defined by two points that 
> coincide. There is no orientation attached to this. So PCB assumes
> the square shape should be aligened along the axis of the grid. After
> the rotation transform was applied to the two points, they still
> coincide. Consequently PCB insists to render them like before.
> 
> The work-around is to make the pads slightly non-square. Then 
> There are rounding glitches, though. If the two points differ by too 
> little distance, the resulting shape renders not quite in the
> expected angle.

Because of this bug (it is completely a bug from the user's point of
view), as you suggested I always make my nominally-square pads slightly
non-square.  Usually by +/- 0.01 mil or +/- 0.02 mil, but that might not
be enough for good rotation... hopefully nanometer conversion will
improve that significantly with no extra effort for us footprint
designers.

Regards,
Colin


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Bug in 'FreeRotateBuffer()'? (WAS: Re: Line Thickness in Imported DXF Files; Rotating by Arbitrary Angle; UTF-8)

2011-08-15 Thread Kai-Martin Knaak
Gus Fantanas wrote:

> Is it a bug or 
> did I do something wrong when I created the footprint? 

It is half a bug. Exactly square pads are defined by two points that 
coincide. There is no orientation attached to this. So PCB assumes the 
square shape should be aligened along the axis of the grid. After the 
rotation transform was applied to the two points, they still coincide. 
Consequently PCB insists to render them like before.

The work-around is to make the pads slightly non-square. Then 
There are rounding glitches, though. If the two points differ by too 
little distance, the resulting shape renders not quite in the expected 
angle. For the attached screenshot I have modified your footprint by 
1/100 th of a mil,  5/100th and 10/100th. The larger the difference, the
more the square shape rotates like it should. I guess, this issue will
be three orders of magnitude less severe, once coordinates are stored 
as nonometers. 

I attached the modified footprint, too.

---<)kaimartin(>---
-- 
Kai-Martin Knaak  tel: +49-511-762-2895
Universität Hannover, Inst. für Quantenoptik  fax: +49-511-762-2211 
Welfengarten 1, 30167 Hannover   http://www.iqo.uni-hannover.de
-> not happy with moderation of geda-user mailinglist

rottest.fp
Description: application/pcb-footprint
<>

___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


gEDA-user: Bug in 'FreeRotateBuffer()'? (WAS: Re: Line Thickness in Imported DXF Files; Rotating by Arbitrary Angle; UTF-8)

2011-08-15 Thread Gus Fantanas

On 08/14/2011 03:16 PM, DJ Delorie wrote:

OK, so is there any option in pcb to rotate by an angle other than 90
degrees?

Cut

:FreeRotateBuffer(45)

Paste


Thank you so much for your response.

Using PCB, I created a footprint for the PDS760 Schottky diode 
(PowerDI®5 package).  I have pasted its ASCII file below.  When I apply 
'FreeRotateBuffer()' to that footprint, the big pad (pin 1) and the 
silkscreen rotate fine, but the two small square pads (2 and 3) do not.  
Their centers rotate, but the pads themselves do not.  Is it a bug or 
did I do something wrong when I created the footprint?  I have verified 
the problem with 45° and 60° rotations.


Here is the footprint file.  The guardband is probably overly liberal, 
but for now it can do the job for me:



Element["" "" "D?" "" 27500 15000 -6500 9500 0 100 ""]
(
Pad[-14383 124 -8478 124 13228 2000 14228 "" "1" "square"]
Pad[4239 3745 4239 3745 5512 2000 6512 "" "2" "square,edge2"]
Pad[4239 -3499 4239 -3499 5512 2000 6512 "" "3" "square,edge2"]
ElementLine [-23000 -8500 -23000 8500 500]
ElementLine [9000 -8500 -23000 -8500 500]
ElementLine [9000 8500 9000 -8500 500]
ElementLine [-23000 8500 9000 8500 500]

)







___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: Bug in 'FreeRotateBuffer()'? (WAS: Re: Line Thickness in Imported DXF Files; Rotating by Arbitrary Angle; UTF-8)

2011-08-14 Thread DJ Delorie

You can't rotate a square pad, because there's no reference angle -
both "end" points are the same.

Just make the pads slightly not-square.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user