A mesh is watertight when its triangles form one closed boundary: every edge that should be shared is shared, the inside and outside are consistent, and the surface encloses a volume. Rendering does not need that. Volume does.
CADProps estimates STL and OBJ properties from the triangle mesh. Dimensions and area can come from readable triangles. Reliable volume, and any mass based on that volume, requires a suitable closed mesh. If the mesh is open or inconsistent, volume stays unavailable. It is not stored as zero.
Watertight is not the same as "looks solid"
| What you see | What it implies |
|---|---|
| A shaded part with no obvious hole | The camera can draw both sides of an open surface |
| A tiny gap or a missing triangle | The mathematical enclosure can already be broken |
| Overlapping shells | Volume may count geometry twice or become ambiguous |
| Flipped faces | The inside and outside are inconsistent |
| A closed mesh with a ridiculous volume | The enclosure may be valid while the unit assumption is wrong |
Why STL volume is zero or missing walks through those cases. A true zero is only for geometry that really encloses nothing, such as a flat sheet. A damaged solid that fails the check is a different status. Putting both down as 0 hides the reason.
Units still matter after the mesh is closed
Closure does not declare millimetres or inches. STL and OBJ on this site assume millimetres. A closed mesh interpreted in the wrong unit still has a volume; the volume is the wrong size. Because volume scales with the cube of length, a 25.4 linear factor becomes a very large volume factor. STL units is the check. Changing the display unit does not repair a hole, and closing a hole does not fix a 25.4 scale error.
3MF can declare a unit that is converted to millimetres. glTF uses metres, normalized to millimetres. Those rules are format-specific. They do not make an open mesh watertight.
Repair is a new model
Automatic hole closing can join the gap in more than one way. If the missing surface is a port, a parting line or a thin wall, the repaired volume can be plausible and wrong. Compare a repaired mesh with the source CAD or the drawing before you use it for a quote.
When the original STEP or native solid still exists, re-export from that solid. Tessellation changes the approximation; it is not a substitute for a closed B-Rep. STEP vs STL is the reason to keep the solid if the next person needs precise volume.
A short test
- Open the original STL or OBJ without renaming it. Use the STL viewer or the OBJ viewer.
- Read whether volume is available or unavailable.
- Look for gaps, extra shells and inconsistent orientation if the volume is missing.
- Confirm one known dimension and the intended unit.
- Re-export or repair only after that, and label mesh results as approximate.
- Apply a density only to a volume you trust. If the volume is unavailable, the mass is unavailable too.
Decide whether a gap is damage or intentional geometry
Before closing a boundary, ask what the mesh represents. A sheet-metal surface exported without thickness is intentionally open. A missing triangle on a solid bracket is damaged enclosure. A deliberately modeled pipe opening is different again: the material can still be a closed solid if the inside and outside surfaces join around the opening.
Use the CAD source or drawing to establish which case applies. A repair program cannot decide the engineering intent merely because it can draw a patch across an edge loop. Filling a designed opening can alter material volume and erase a functional passage.
If you must repair a supplied mesh, keep the original, save the repaired output separately and record the changed region. Recheck known dimensions, component count and any available volume. A plausible mass after repair is useful as a sanity check, but it does not prove that the chosen patch was correct.
For a receiving checklist, record two independent outcomes: scale verified and enclosure suitable for volume. Either can fail while the other passes. Leave the mass field unavailable when enclosure remains unresolved, and request a fresh solid-derived export if the next task needs engineering properties.
Original article: CADProps · https://www.cadprops.com/guides/watertight-cad-mesh/