slic3r / Slic3r

Open Source toolpath generator for 3D printers
https://slic3r.org/
GNU Affero General Public License v3.0
3.28k stars 1.29k forks source link

3D Printing Non-Manifold Surfaces to an Arbitrary Thickness #5089

Open coreyfro opened 3 years ago

coreyfro commented 3 years ago

Is your feature request related to a problem? Please describe. Slicing software cannot generate paths from perfectly valid surface models and artificially thickening surface models in mesh or solid modelers is a destructive process.

Describe the solution you'd like A well formed surface model has a valid mesh with consistent normals. Slicing software can generate nesting paths from where the slicer intersects the model on the XY plane in a user selected direction, 'Normal' or 'Anti-Normal' allowing a valid model which is of 0 thickness to form a print which is N walls thick.

Describe alternatives you've considered An alternative is to use a valid solid model, select surface which you don't wish to be printed, and setting "infill" to instead be printed as "support".

Additional context

I would like to begin a discussion about printing Surfaces which are not manifold. There are certain applications, certain types of output, certain desired prints which are most easily defined by a non-manifold surface. A non-manifold surface, to a slicer, appears as a path with two end-points. While present slicers identify zones by complete perimeter, a slicer which, instead, identifies paths, along with normal of surface, could arbitrarily generate nested paths based on user input to print "Normal" or "Anti-Normal".

These nested paths would generate a wall thickness in the desired direction.

The slicer could work, additionally, to build support for these paths.

I know this seems to be counter convention. I understand the significance of ensuring models are manifold, watertight, etc. This, however, is an arbitrary limitation. Other CNC processes do not have this constraint.

I am not being naive.

I have been 3D printing for 12 years. I was one of the designers for Type-A-Machines Series 1 3D printers. I am a CNC machinist by trade. I have used just about every slicer on the planet and am fluent in Solidworks, Blender, Inventor, Fusion 360, and On-Shape. I literally wrote the curriculum for TinkerCAD for Autodesk.

So when I say this is a feature that could exist in the 3D printing world, it is not without considerable knowledge of the limitations of 3D printing.

There are situations where a Non-Manifold Surface is a valid 3D model which could be easily interpenetrated by a slicer and printed.

Not all models make sense as volumes or need to be manifold shells to be valid designs. A non-manifold surface which is a valid geometric construct has all the data necessary to become a valid geometric object to generate CNC paths; Mesh, normals. 2021-05-21 00_27_52-PrusaSlicer-2 3 1 based on Slic3r

Trying to arbitrarily modify a non-manifold surface into a volume can be a destructive process, a complicated process, and is an unnecessary step. Below is an example of using blender's 'solidify' or thickening feature. 2021-05-21 23_36_33-Blender_  C__Users_coreyfro_Documents_Lancia Rear Surface blend

A feature such as 'printing non-manifold surfaces to arbitrary thickness' would be a useful process for any industry adjacent to vacuum forming, mold making, working with topological data either generated procedurally or perhaps collected such as data from USGS. external-content duckduckgo com 1200px-Protest_ACTA_2012-02-11_-_Toulouse_-_05_-_Anonymous_guy_with_a_scarf chocolate-mold-768x512 il_680x540 622765471_c3gn Saddle_Point external-content duckduckgo com

This is not intended to repair invalid geometry with inverted normals. Such would still be the responsibility of the designer. g11002

Where arbitrary thickness would come in is by selection which normals to expand the surface into to create G-Code paths. This would necessarily require valid geometry from the user.

An alternative interpretation to satisfy existing slicers would depend on the designer constructing arbitrary simplified surface geometry to produce a manifold surface and then the slicer permitting the removal of certain surfaces. This would provide the slicer the necessary information to recognized desired perimeter while allowing the designer to print just the desired surface at an arbitrary thickness.

This alternative would be akin to vase printing where top and bottom geometric information is discarded and infill would be replaced with support material. In this image the bottom is removed where as it would be desirable to remove the arbitrary surface opposite the original. The below image is undesirable for many reasons.

  1. Uses infill instead of support material.
  2. The arbitrary surfaces have to be removed through a time-consuming destructive process.
  3. So much waste for such a small, simple surface. 2021-05-21 00_03_39-PrusaSlicer-2 2 0 based on Slic3r

Is this a new feature request? Yes