feat: implement Excellon M25/M01/M02 pattern repeat#304
Open
rampageservices wants to merge 1 commit intogerbv:developfrom
Open
feat: implement Excellon M25/M01/M02 pattern repeat#304rampageservices wants to merge 1 commit intogerbv:developfrom
rampageservices wants to merge 1 commit intogerbv:developfrom
Conversation
M25 begins recording drill operations into a pattern buffer, M01 stops recording, and M02 replays all buffered operations shifted by a given X/Y offset. This supports panelized PCB drill files where the same hole pattern repeats across multiple board instances. Drills between M25 and M01 render normally and get buffered. Multiple M02 commands can follow a single M25/M01 block to repeat at different offsets. Both drill holes and routed segments are recorded and replayed.
This was referenced Mar 1, 2026
This was referenced Mar 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Changes
src/drill.c: Pattern entry struct, state fields, M25/M01/M02 dispatch handlers, pattern recording at drill/route/R-code sites, buffer cleanupsrc/gerbv.h: M02 stats countersrc/drill_stats.c: M02 stats accumulationsrc/callbacks.c: M02 row in drill statistics UItest/inputs/test-drill-pattern-repeat.exc: Test file with 3-hole pattern repeated at two offsets (9 holes total)test/golden/test-drill-pattern-repeat.png: Golden reference imagetest/tests.list: Registered new testTest plan
test-drill-pattern-repeatpasses (9 holes in 3 clusters)./build/src/gerbv test/inputs/test-drill-pattern-repeat.excshows 3 clusters of 3 holes