Two solid bodies in one STEP file. The check read the bigger one: 32,004.9 cubic millimeters across 11 faces, one critical undercut at face 7 sitting at 86.0 degrees, a tooling estimate of 14,000 USD. It did not read the other body, and it said so in the strip across the top of the report: Part 1, 46 × 34 × 26mm, 32.0cm³ analyzed (1 of 2 parts in this file; 1 more not analyzed).
So I pointed it at the body it had skipped. That one is smaller, 14,794.7 cubic millimeters, but it carries 33 faces instead of 11, three of them undercut at exactly 90.0 degrees, and its own tooling estimate came back at 62,000 USD.
Same file, same click. The number you walk away with is either 14,000 USD or 62,000 USD, and which one you get depends entirely on which body was read.
How does a STEP file end up with two bodies in it?
A multibody part in SolidWorks, or a Fusion design with several bodies under one component, exports every visible body unless you narrow the selection first. An assembly sent straight to STEP writes each component as its own solid. And a part that has been through a patch or a surface repair often drags a leftover surface along with it, which is not a solid at all but still takes up a slot in the file.
The file I ran is the first case. I had two parts sitting as separate STEP files, an enclosure and an unrelated snap-clip part, and I exported them together into one file to reproduce what an export dialog does when more than one body is visible. Both bodies are geometry I had already run through the check individually, which is what let me verify the results afterward.
Which body gets checked, and why that one?
The largest solid by volume. It has to pick something, and volume is the closest thing to a guess at which body you meant.
That guess is reasonable. The part you are asking about is usually the substantial one, and the stragglers are usually small: a pin, a leftover surface, a fastener that came along from an assembly. On my file the guess landed on the enclosure at 32,004.9 cubic millimeters and skipped the clip at 14,794.7.
If the report had just said "one critical undercut, 14,000 USD" and stopped there, every word of it would have been accurate. I would also have had no way to notice that three quarters of the faces in my file were never looked at.
What was actually on the body that got skipped?
Three undercut faces at exactly 90.0 degrees, 14 faces over the ABS wall thickness ceiling, and 6 wall variance findings: 23 located findings in total, each pinned to a face number and a position.
Here are the three criticals as the engine reported them, with each face's recorded position set alongside:
Critical undercut, requires complete redesign or advanced mold technique
detected at face 20 (angle: 90.0°) position (-20.0, 1.72, 18.0)
detected at face 24 (angle: 90.0°) position ( 0.0, 1.72, 18.0)
detected at face 28 (angle: 90.0°) position ( 20.0, 1.72, 18.0)The positions line up: three faces at the same height, spaced evenly at minus 20, zero and plus 20 along the length. Three identical hooks in a row. Each reads 90.0 degrees, meaning the face stands perpendicular to the direction the mold opens and hooks the steel completely, so a straight-pull mold cannot release it. Something has to move sideways before the part is ejected, which is where side-action slides come in, and I have walked through what those cost in toolmaking hours in an earlier teardown of a real PCIe bracket.
The wall thickness findings are less dramatic and more numerous. ABS is checked against a 3.56mm maximum in this run, and 14 faces on the clip come back between 4.0mm and 6.0mm. Six of those also register as variance findings, sitting 33 percent off the body's dominant 6.00mm wall, which is over the 30 percent limit that flags uneven cooling.
Does the skipped body read the same when you check it on its own?
Yes, identically. I ran the clip as a standalone single-body file and compared it with the same body selected inside the two-body file.
Three critical undercuts both times, faces 20, 24 and 28, same angles. Same 20 wall thickness findings. Same status. The enclosure side matched too: face 7 at 86.0 degrees whether I ran the enclosure alone or as the larger body in the pair. Each body reads the same whether or not another body happens to share the file with it, so what the two-body file changed was which body I got an answer about.
One number here will not line up with what you see in the app, so it is worth saying plainly. I counted 23 findings on the clip and 14 on the enclosure by listing the ones tied to a face number. The report's own summary shows 30 and 22, because it also counts defect risks like sink marks and weld lines, which depend on gate placement and cooling and so cannot be pinned to a face. Both counts are the same analysis, counted with and without the risk flags.
What do the two reads actually say, side by side?
Every line below came from the same file. The only thing that changed between the two columns is which body was selected.
| Enclosure (analyzed by default) | Clip (skipped by default) | |
|---|---|---|
| Solid volume | 32,004.9 mm³ | 14,794.7 mm³ |
| Faces | 11 | 33 |
| Critical undercuts | 1, at face 7, 86.0° | 3, at faces 20, 24, 28, all 90.0° |
| Faces at 0.0° draft | 2, faces 6 and 8 | none reported |
| Faces over the 3.56mm ABS ceiling | 7, worst at 16.42mm | 14, from 4.0mm to 6.0mm |
| Located findings | 14 | 23 |
| Tooling tier | moderate | complex |
| Base mold estimate | 10,000 USD | 50,000 USD |
| Slide cores added | 1 at 4,000 USD | 3 at 4,000 USD each |
| Estimate total | 14,000 USD | 62,000 USD |
The gap is not mostly the slides. Two extra slide cores account for 8,000 of the 48,000 difference, and the base tier accounts for the other 40,000. That tier is set by how many undercuts a body has. Three or more critical ones puts it in the complex bracket, and so does more than four undercuts of any severity. A body with at least one undercut and neither of those conditions met stays moderate. The clip landed on exactly three criticals.
Neither total is a quote. Both assume a region and a complexity tier rather than reflecting any toolmaker's bid, and the report labels them as estimates for that reason.
How do you tell which body was read?
A strip across the top of the report identifies the body it read and counts the ones it did not. On my file it read Part 1, 46 × 34 × 26mm, 32.0cm³ analyzed (1 of 2 parts in this file; 1 more not analyzed). A file with a single body has nothing to disclose, so the strip does not appear at all.
The label is worth a word. My two source parts carry no usable names, because the exporter wrote its own boilerplate into the file instead, so the strip falls back to an ordinal and adds the bounding box and the volume. That is deliberate: on a file with four similar brackets in it, "Part 3" on its own tells you nothing, and 46 × 34 × 26mm tells you which one you are looking at. When a file does carry real part names, those get used instead.
Next to the label is a dropdown listing the solid bodies you can pick from. Choosing a different one runs the analysis again on that body, which counts against your analysis quota the same way any other run does, so browsing the list is free and switching is not. Loose surfaces and open shells count toward the ignored total but never appear in the dropdown, because there is nothing to analyze on a loose surface, and if they are the only other things in the file the dropdown is left out entirely. The history list keeps the same count on each analysis, so a report you open next month still says 1 of 2.
If you have a STEP file sitting on your computer right now that came out of an assembly or a multibody part, that count is the first thing worth reading. Run your export exactly as it is and look for the strip before you read a single finding. No strip means the file held one body and the report is about the part you meant. A strip means you now know how much of the file went unread, and which body to switch to next.
Related reading: what a shop actually does with your STEP file after you send it, and how to design undercuts out of a part before they reach the mold.
Check your design with Fabdose
FAQ
Can a STEP file contain more than one part?
Yes. Nothing in the format says a file holds exactly one solid, so a multibody part, a whole assembly, or a part with a stray surface left over from a patch all produce files with more than one body inside. A check, a quoting system and a mold cavity each deal with one part at a time, so something has to decide which body is the part you meant.
Which body does Fabdose analyze in a multi-body STEP file?
The largest solid by volume, and it tells you that is what it did. The strip across the top of the report names that body and counts the rest: 1 of 2 parts in this file, 1 more not analyzed. A dropdown in the same strip runs any of the other solid bodies, and that run counts against your quota like any other. Loose surfaces and open shells count toward the ignored total but never appear in the dropdown.
What happens if the checker picks the wrong body?
You get a correct answer about a part you were not asking about. On my test file the default read named one critical undercut at face 7 at 86.0 degrees and put tooling at 14,000 USD, while the skipped body had three undercut faces at exactly 90.0 degrees and an estimate of 62,000 USD.
Does a family mold make a two-body STEP file correct?
No, because a family mold still cuts a separate cavity for each part number. Standard practice is that family molds share one mold base, which is common for mating components needed in equal quantities, and that they come with their own constraints: one resin for every part, runner balancing between cavities of different sizes, and one bad cavity compromising the whole shot. Each cavity is still cut from one part's geometry.
How do you split a multi-body STEP file into separate parts?
In your CAD package. Isolate or show one body at a time and export each one, which most packages expose as an option to export selected bodies rather than all visible ones. For a first pass it is faster to run the file as it stands and switch bodies inside the report, keeping in mind that each switch is a fresh analysis against your quota.
