Re: gEDA-user: Bug in 'FreeRotateBuffer()'? (WAS: Re: Line Thickness in Imported DXF Files; Rotating by Arbitrary Angle; UTF-8)
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)
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)
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)
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)
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)
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)
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)
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)
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