Drill- en Gerber-lagen niet uitgelijnd? De absolute-vs-relatieve origin-bug
Een gebruiker van onze open-source Gerber-library meldde een herkenbaar probleem: in de "all layers"-weergave zweefden de boorgaten ver naast het board (github.com/Delta-Proto/delta-gerber/issues/5).
De oorzaak zat niet in de viewer, maar in de export. Sommige EDA-tools — Altium voorop — schrijven het NC-drill-bestand met een ándere oorsprong dan de Gerber-bestanden: * de Gerbers ten opzichte van de relatieve (board)oorsprong, dus het board ligt rond 0,0 * het drill-bestand ten opzichte van de absolute (sheet)oorsprong, dus het board ligt ver van 0,0
Het vervelende: het drill-bestand bevat nergens de offset om die twee weer samen te brengen. De boorgaten staan dus simpelweg op een andere plek dan het koper.
Dit is een bekend probleem. Andere fabrikanten en tools beschrijven exact hetzelfde: * Numerical Innovations — Gerber and Drill layers do not align: support.numericalinnovations.com/support/discussions/topics/14000002602 * OSH Park — Altium drill file CAM configuration: docs.oshpark.com/design-tools/altium-designer/drill-files * OSH Park — veelvoorkomende fouten in drill-bestanden: docs.oshpark.com/troubleshooting/drill-issues * PCBSync — NC drill files genereren in Altium: pcbsync.com/how-to-generate-nc-drill-files-in-altium-designer
De gangbare oplossing is handwerk: zorg dat de Gerber- en de NC-drill-export dezelfde origin-instelling gebruiken ("Reference to Absolute Origin" versus "Reference to Relative Origin") en exporteer opnieuw.
Wij wilden dat onze viewer het ook zónder her-export correct laat zien. Daarom doet Delta Gerber nu het volgende: * detecteren dat de drill-laag volledig buiten het board valt * de exacte offset terugrekenen door de boorgaten te matchen op de koper-pads — elke doorgeplate via zit immers concentrisch in zijn pad * de drill alleen verschuiven als die offset exact te bepalen is, en anders niet: een exacte correctie of geen, nooit giswerk * een waarschuwing tonen die uitlegt wat er speelt en hoe je je export aan de bron corrigeert
Het is dezelfde aanpak die goede CAM-tools gebruiken om lagen uit te lijnen op een gedeeld referentiepunt — maar dan automatisch, op basis van de geometrie zelf.
Dit kwam binnen als GitHub-issue #5 en is inmiddels opgelost en gemerged (github.com/Delta-Proto/delta-gerber/issues/5). Precies daarom houden we de library open source én actief onderhouden: echte bestanden uit de praktijk leggen randgevallen bloot die je in een lab nooit verzint.
Delta Gerber is een library in Java die Gerber X2/X3 en Excellon drill-bestanden parst, interpreteert en rendert — volledig in de browser, zonder upload en zonder installatie.
Liever zelf proberen? * Bekijk je Gerbers direct in de browser via onze Gerber Viewer: /opensource-gerber-viewer * Of clone de library van GitHub: github.com/Delta-Proto/delta-gerber
Bijdragen, issues en feature requests zijn welkom.



