← Back to team overview

kicad-developers team mailing list archive

Re: Possible 4.6 gerber issue?

 


On 10/17/2014 08:10 AM, Wayne Stambaugh wrote:
On 10/17/2014 8:44 AM, jp charras wrote:
Le 17/10/2014 14:22, Mark Roszko a écrit :
Alright, I've played around. It appears there is many CAM/gerber
software that cannot handle G75 arcs that are full 360 degrees. I
tested this with the board from Jon and the 1 pin test board from
Nick. If I generate 359 degree arcs, the 3d viewer is happy and draws
good circles. If I generate 360 degrees then the arcs disappear/screw
up.
As far as I can tell, the math is right for the arcs regardless of 360
or 359. I think it's because the start point == end point for a 360
degree arc, that some viewers may break down due to their graphics
libraries.

I modified KiCAD to generate the circles as two arcs and the same
viewers seem happy.

i.e. I made

void GERBER_PLOTTER::Circle( const wxPoint& aCenter, int aDiameter,
FILL_T aFill,
                              int aWidth )
{
     Arc( aCenter, 0, 3600, aDiameter / 2, aFill, aWidth );
}

into

void GERBER_PLOTTER::Circle( const wxPoint& aCenter, int aDiameter,
FILL_T aFill,
                              int aWidth )
{
     Arc( aCenter, 0, 1800, aDiameter / 2, aFill, aWidth );
     Arc( aCenter, 1800, 3600, aDiameter / 2, aFill, aWidth );
}

Many other CAD software also generate circles as multiple arcs instead
of a full g75.

Attached are my generated gerbers, 360 won't work, but 270, 359 and
split arcs will work I believe.
Do we really want to be in the business of working around other peoples
broken software?  I really don't want KiCad to be part of that world.
It's one of the reasons I am willing to work on KiCad for free.  While I
appreciate your effort, this is something I would not commit unless we
are violating the gerber specification which appears not to be the case
if JP is correct.  What we should be doing is sending high quality bug
reports including references to the gerber specification, screen shots,
files that cause the problem, etc. so the developers of the various
broken gerber viewer apps and make it their responsibility to fix their
code.
You bring up a good point. However, many of KiCad's users are interested
in creating board designs that can be easily and accurately read by
their board house suppliers. If the fix - using two half circles instead
of one whole circle - can be read by broken board house software, why
not use this fix in KiCad.

Your approach - depending on upstream to fix a problem with an obvious
fix - also assumes that the board house will acquire the software
upgrade when it arrives.

After some period of time, inspection of the upstream fix may disclose
that they also substitute two half circles whenever they encounter a
full circle in the design.


OK.
However, the Gerber specification says:
"Under G75, if the start point of the arc is equal to the end point, the
arc is a full circle of 360°"

See
http://www.ucamco.com/files/downloads/file/81/the_gerber_file_format_specification.pdf?46dfe8d5c8aee229e773d81222fd4db4

page 55, chapter 4.4.6



_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp



References