Engineering drawing reader
Engineers typed 12 tolerance values per drawing from scanned PDFs into a masterlist. The two common errors were swapping the top and bottom points and misreading digits.
144/144values correct on a 12-drawing test set
Method and results
- The model reports only what it sees and where. Plain Python assigns each value to its point, so a top and bottom swap cannot happen.
- Each drawing is read twice, independently, and a third pass settles disagreements. After a two-against-one vote once proved wrong on 9 values, I changed the rule so that every contested value is flagged for review.
- Nothing reaches SQL Server or the Excel export until a person confirms it on a review screen beside the drawing.
- On a 12-drawing test set (144 values) it matched every value. The two rows that disagreed with the masterlist turned out to agree with the drawing.
- Values are stored as text so that entries such as ±0.15 and blanks survive. A blank is never converted to 0.
- The code has 163 automated tests and deploys through Bamboo. I later added support for a second drawing format.