This has been an idea rolling around in my head for ages but beyond my skills to implement. I recently discovered someone else has already solved this problem, and I'd love to see how the concept or code could be implemented in Surpac.
The Problem
Solids, particularly ones representing underground as-built mining shapes, can be problematic. When you factor in that many of the people generating these solids are technicians who never have to use them downstream, it's not uncommon to spend significant amounts of time just cleaning up the shapes for use. Valid solids are critical to accurate production reporting, reconciliation, depletion, and even safety issues.
Surpac has historically been the most rigorous in the validation process, while Deswik appears to accept just about anything without complaint. Note: just because software doesn't complain doesn't mean it's done the calculations correctly—it hasn't, the software just didn't tell you about it. Surpac, to my chagrin, implemented a "feature" that turns off error notifications. Surpac still generates erroneous results but doesn't tell you they are bad. Sigh.
In my experience, the most common validation errors for these types of solids are:
- Overlapping and joined trisolations
- Internal, invalid triangles within those trisolations
- Minor, almost imperceptible holes in the solid
A Solution
I had always visualized taking a triangulation, 3D printing it to get a physical part, and then placing it in one of those vacuum-forming molds to get a shrinkwrap outer surface of the entire object. This would make any internal triangulation issues obsolete and patch any minor (or major) holes in the solid.
Sure enough, Rhino3D has a function called ShrinkWrap that does exactly that. There's an excellent video explaining some of the uses for this functionality here: https://www.rhino3d.com/en/features/shrinkwrap/. The headline: "ShrinkWrap creates a watertight mesh around open or closed meshes, NURBS geometry, SubD, and point clouds."
My current workflow involves:
- Exporting Surpac solids as DXF files
- Importing them into Rhino3D
- Running the ShrinkWrap function
- Exporting back to Surpac
It works like a charm. The process is a bit sensitive to the choice of settings, but with some practice, this has become a positive workflow that saves considerable time and frustration.
Call to Action
I would guess that in the Dassault Systèmes world, there is similar code that could be brought into Surpac fairly easily. Second best option? A license of Rhino3D is about \\\$1,000. Perhaps DS could license the ShrinkWrap code directly and make all of our lives that much easier!
This functionality would be a game-changer for anyone dealing with complex mining solids. The time savings alone would justify the investment, not to mention the improvements in accuracy and reliability for critical mining calculations.

