Delete only invisible parts of faces
As long as the STL creates a closed, manifold, watertight body, a good slicer will just slice it. Ultimaker Cura has the option to Union intersecting shells, which lets it take non-manifold parts of a shell and union them to the body in such a way that it creates a closed body. More simplification and fixing the problem in a slicer usually is not needed. If there is still some area where internal geometry is created, it can help to create an overlapping internal structure deliberately, as Easy way to refine a 3D-model for 3D printing by removing internal geometry explains.

Let's look at some example: The STL game export of a pauldron is made from the base body (one shell) and the rivets (which are another shell inside the STL). If Union Intersecting Shells is active, the rivets are sliced and printed as part of the pauldron. If Union Intersecting Shells is not active, the rivets are found to be non-sliceable and ignored.

Infill is meant to support the upper structures in print.

If it is mandatory to join the item into one shell, the STL format isn't the best to go through. 

If the pattern is produced by a program, that is able to generate and export STEP files, these could be used by CAD software such as Fusion360 which then would interpret the generated body in such a way that it can be unioned easily, getting rid of internal geometry.

If the program generating the pattern is working with a vertex cloud such as blender, it should be possible to cut the long outer lines into several pieces and placing the vertices on the intersection of lines. These vertices could then be merged and any internal edges (and faces) removed. This can be a tedious process.