STEP assembly checks · Burr 0.40.5
SolidWorks interference detection alternative for STEP files
If a supplier sends you a STEP assembly and you need a repeatable interference report, Burr can check the export locally without opening SolidWorks. It is an alternative for that specific checking step. Keep your CAD authoring and engineering review workflow.
What SolidWorks already does
SolidWorks has native interference detection. Its published 2010 help documents component selection, highlighted interference volumes, per-interference volume values and ignored intentional fits. Those are documented native capabilities, not missing features Burr needs to invent. Consult the help for your installed version for its current options.
When an export check fits
Use Burr when the deliverable is an assembled STEP file, or when a pull request needs a check of committed geometry. Run burr check --json assembly.step > report.json on macOS or Linux. The JSON records component pairs and incomplete checks; the GitHub Action below repeats that check on exported files. No model upload or Burr account is needed for the local check.
What you give up compared with native CAD review
Burr does not read native SLDASM/SLDPRT design history, edit mates, or report exact Boolean overlap volume. It checks a static exported pose, not clearance through motion. Keep SolidWorks for native assembly work and volume-based investigation. A face contact is allowed in Burr; do not assume its policy matches the coincidence settings in your CAD check.
Export and review deliberately
Export the components together in their assembled positions, preserving separate solids and occurrences. Check that the export contains the intended parts before running Burr. An intentional press fit can produce a real interference finding; review the named pair before accepting it. Unresolved geometry remains incomplete even when another pair has proven interference. The examples below show both a complete pass and that mixed failure.
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.