Karl Hammar observes: It also seems that kicad polygons have rounded corners which depends on min_thickness. Look at the difference between these files:
kicad_pcb | gerber |
---|---|
39a.kicad_pcb | 39a.gbr |
39b.kicad_pcb | 39b.gbr |
Resolution:the polygon lib in pcb-rnd does not have support for calculating where edges/hairpins of a polygon needs to be triggered, thus pcb-rnd is importing these polygons with sharp corners. There is no plan to support this at the moment.
In KiCad the clearance value is set by the sorrunding polygon (zone), not by the object that is clearing: 39a.kicad_pcb, 39a.gbr.
A test case pack (CUCP#39) contributed by Karl Hammar is available for later development/testing.
Resolution: At the moment pcb-rnd does not have support for polygon specified clearance. This extension is planned in the next issue of the data model, where the both the clearing object and the polygon can set the clearance and the larger value is used. Until that is implemented, clearance values are not imported properly.
Since we generally store the "as drawn" polygon and calculate the "clipped" polygon using all object clearances and other factors, there are, and always will be differences between how polygons behave or look like:
Resolution: Always check your polygons after import!
In KiCad there seems to be a margin/clearance applied from the outline to copper polygons.
Resolution: pcb-rnd does not have anything like that, so the polygons you import may extend to or even beyond the manual drawn board outline. We have long term plans to provide a (completly different) solution to the generic problem KiCad's cross-layer clearance is trying to solve.
KiCad mirrors text horizontally (when fp_text or gr_text effect's justidy has the mirror keyword in the s-expression file). Unfortunately pcb-rnd can mirror text vertically only, so this mirroring is skipped for now.
Resolution: Text position is calculated properly, but mirroring is not done.
From KiCad 5 it is possible to request a convex hull shaped clearance for non-convex polygon pads (custom pads), see the examples drawn for CUCP#46: 46.kicad_pcb, 46.gbr
Resolution: Not supported, the convex hull clearance is ignored with a warning. Later on pcb-rnd may have support for custom (user defined polygon) clearance shape for padstacks; that's when this can be revised. Until that, polygon clearances in pcb-rnd will be calculated as if the convex hull clearance was not selected in KiCad.