STEP assembly checks · Burr 0.40.5
Check an Onshape STEP export for interference without opening CAD
You can review an Onshape assembly in Onshape, or check a supplied STEP export in Burr without opening the Onshape document. Burr reads the downloaded geometry locally and produces a JSON report. It does not connect to your Onshape account.
Use Onshape for checks inside the document
Onshape documents interference detection in both Part Studios and Assemblies. Select two or more parts from its analysis tools to see interfering regions highlighted and parts listed. Options include checking standard content and hiding interferences internal to selected subassemblies. Use that native view when you are investigating the working document.
Use Burr when the handoff is a file
Onshape documents exporting an entire Assembly from its tab and offers STEP as an export format. Export the intended assembly together, then run burr check --json assembly.step > report.json. Burr checks that file on macOS or Linux without uploading it. Share the exact STEP revision with the report so someone else can repeat the result.
The export is a snapshot
Onshape notes that downloaded exports do not contain features or parametric history. Burr cannot edit Onshape mates, follow document updates, regenerate exports, or verify that a file matches the latest document. It also does not certify minimum clearance, continuous motion safety, or exact overlap volume. Its interference result applies only to the geometry and pose you supplied.
Repeat the same handoff check in CI
Commit the STEP and use the GitHub Action below to retain a JSON report on pull requests. A change to the Onshape document alone does not update the checked file. Arrange a separate trusted export process if you need that automation. Treat unresolved pairs as incomplete rather than a clean result; the openAMR example below demonstrates why.
CAD tool documentation
The native capabilities described above come from these public references. Checked October 21, 2026; this is a workflow comparison, with no speed or accuracy benchmark.
Install the release used here
Run this on macOS (Apple Silicon or Intel) or Linux x64. The installer downloads a prebuilt release and verifies its checksum. Linux ARM64 is not available in this release; x64 requires AVX and FMA. Checks run locally and need no Burr account.
curl -fsSL https://burr.sh/install.sh | BURR_VERSION=0.40.5 sh
export PATH="$HOME/.local/bin:$PATH"
burr --versionRead the installer before running it.
Reproduce two real open-hardware checks
These unmodified STEP files come from the Voron-0 Manta M4P DIN mount (GPL-3.0) and the openAMR cover assembly (CERN-OHL-P-2.0). The URLs pin their source revisions. We ran the released Burr 0.40.5 Linux x64 binary on October 21, 2026.
mkdir -p models
curl -fL 'https://raw.githubusercontent.com/VoronDesign/Voron-0/a53fc87562fd630c846af38d7de850c894dc3d85/CAD/Electronics%20Mounts/Manta_M4P_Din_Mount_2pc.step' -o models/manta-mount.step
burr check --json models/manta-mount.step > manta-mount.json
# Exit 0
curl -fL 'https://raw.githubusercontent.com/openAMRobot/openamr-platform-hw/9703a5f13ffc009db8ff3fa979470179afe3d26b/mechanical/cad/production_files/MMP.01.00.00.000%20Cover%20assembly.STEP' -o models/openamr-cover.step
burr check --json models/openamr-cover.step > openamr-cover.json
# Exit 1: interference AND unresolved pairs; inspect the reportThe second command intentionally returns a failure. Run it separately if your shell stops on nonzero exits.
// Selected fields from the real Burr 0.40.5 reports:
// Voron Manta mount (exit 0)
"outcome": "pass",
"summary": "No assembly interference detected across 1 pairs",
"component_count": 2,
"pair_set_complete": true
// openAMR cover (exit 1)
"outcome": "fail",
"summary": "16 interfering component pairs detected; 25 component pairs unresolved",
"component_count": 53,
"pair_set_complete": falseThe mount has two components and one complete checked pair. The cover has 53 components, with 16 reported interfering pairs and 25 pairs Burr could not check completely. Some possible overlaps fall below coordinate/placement or tessellation resolution. That is not a clean assembly result. Reported overlap also does not establish a design defect: intentional fastener engagement needs review.
Full unedited reports: Manta mount JSON and openAMR cover JSON. Some source part labels in the cover appear with encoding artifacts; the report preserves them.
Model attribution and licenses: VoronDesign/Voron-0, openAMRobot/openamr-platform-hw. These checks do not imply endorsement by either project.
Repeat the check in GitHub Actions
Save this as .github/workflows/step-check.yml in a repository containing models/**/*.step. This workflow uses the same checker version. The action fails on interference and on unresolved checks by default; it uploads the report even after a failure.
name: STEP interference
on: [pull_request]
permissions:
contents: read
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: fraylabs/burr-action@v1
id: burr
with:
version: '0.40.5'
files: 'models/**/*.step'
comment: 'false'
- uses: actions/upload-artifact@v4
if: always() && steps.burr.outputs.report-path != ''
with:
name: burr-report
path: ${{ steps.burr.outputs.report-path }}For this exact example, download the two models above into models/ and commit them. The workflow will fail on the cover, for the reasons shown. Action options and accepted-fit policy explain how to review intended fits without hiding incomplete checks.