Engineering drawing reader

Reached the QA server Aug 2026
  • Flask
  • React
  • PyMuPDF
  • SQLAlchemy
  • SQL Server
  • Bamboo

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
Real interface, sample data, and a drawing made for this page. A value the two reads disagree on goes to a person rather than to a vote.

Method and results

  1. 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.
  2. 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.
  3. Nothing reaches SQL Server or the Excel export until a person confirms it on a review screen beside the drawing.
  4. 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.
  5. Values are stored as text so that entries such as ±0.15 and blanks survive. A blank is never converted to 0.
  6. The code has 163 automated tests and deploys through Bamboo. I later added support for a second drawing format.