3D model

From Maker Trainer, the online makerspace

3D models are virtual representations of three-dimensional geometries. Objects in the real world are always three-dimensional, so 3D models are a good way to represent them digitally, or to create a virtual-reality world. 3D models have a broad array of applications, such as films, video games, graphic design, manufacturing and many more.

3D models for 3D printing

3D models are essential to the 3D printing process, but not all 3D models are printable. CAD designers can easily create virtual geometries which are impossible in the real world (eg. a line with no thickness), but a 3D printer will not be able to interpret them.

Models that can be found on 3D printing file sharing websites will usually be print-ready with real world geometry. But if your slicer detects an error with the file, or if you are designing your own files, you will have to learn about common slicer errors related to 3D models, and how to repair them.

If you would like to create your own 3D models, see How to do computer-aided design (CAD).

File formats for 3D printing

  • STL: The most commonly used file format in 3D printing is STL (short for Stereolitographic). It defines only the surface geometry of an object through a series of points interconnected by triangles (faces). Because these triangles are always connected by straight, not curved lines, achieving true curvature is impossible for STL files. However, the more points (and consequently more faces) are used for creating the STL, the closer its shape can resemble a curved shape. STL files do not contain any information about Euclidean geometry (eg. whether points form a square or a circle) like CAD files usually do, but are rather just a set of coordinates in a Cartesian coordinate system. This means that aspects of an STL cannot be easily changed through parameters like other CAD files (eg. changing the size of a circle by giving it a different diameter.)
  • OBJ: The OBJ format (short for Object file) is very similar to STL, but includes surface data such as color.
  • AMF: The AMF file type (short for Additive manufacturing) can describe the shape and composition of any 3D object to be fabricated on any 3D printer. Unlike .stl file formatting (which precedes .amf), AMF files have native support for color, materials, lattices, and constellations.
  • X3D: Used chiefly by printing service bureaus, X3D files can store a vast amount of information related to 3D graphics and scenery. The format is XML-based, supporting complex renderings and visualizations across software platforms. X3D strives to become the 3D graphics standard for web-based content, as it is robust enough for viewing objects—whereas most other formats are largely useful only for modeling parts and interpreting surface data.

File formats for modeling

  • Native CAD formats: Referring to the project files that belong to individual CAD programs, the native format is what retains the most amount of data of a model that is created, but it is very likely not going to be compatible with other software, hence the need for universal formats.
  • Kernels: In addition to native formats, all CAD systems have a geometric modeling kernel that allows them to build and manipulate geometry. These geometric modeling kernels are kernel formats.
  • IGES or IGS: IGES was created to be a software-neutral 3D file format, that is widely used. It works by creating a surface translation of a CAD file, which can work well for 2D components (eg. wireframe, circuit diagram), and in certain 3D applications, but it is limited in scope, and is often considered outdated. IGES files will include rudimentary part data (line, arcs, surfaces, etc.) but lack other part characteristics (mass, volume, surface properties, dimensional tolerances etc.)
  • STEP or STP: Designed to replace IGES, STEP files rely on solid models, whereas IGES files' surface representation could have gaps and missing faces. STEP files are also easier to edit, and contain all the same information as IGES, as well as additional data such as material properties, dimensional tolerances etc
  • PLY: This format (short for Polygon File) was principally designed to store three dimensional data from 3D scanners. In some cases this can be used as alternative to STL files.

Repairing 3D models

STL files need to be watertight, have the right wall thickness, and be properly optimized in order to be printable. If you are designing your own 3D model, or you are trying to print one that was not designed for additive manufacturing, it is very likely that you are going to have to "repair" it. If you have a broken STL file, your slicer software will often warn you about its defects if you try to print it, however in some cases it might not detect any errors, but the print will still end up as a failure.

There are many 3D model repair software on the market to do this, but many CAD program will also offer built-in repair functions. If you are using a repair software, the easiest way to try to repair your file is to use its built-in auto-repair function. The software wizard will attempt to fix all major errors, including holes, separate shells, and intersections. If you are not using a designated repair software, your 3D design software might have a "make solid" or "make watertight" tool, that can take care of many of these problems.

Common slicer errors related to 3D models

  • Surface holes / non-watertight mesh. A model is watertight if its polygon mesh is free of holes and cracks, so that all edges of each polygon in the mesh are matched to other edges in a manifold way. This does not mean that a 3D design cannot include holes, but the perimeter of those holes needs to be made up of a solid 'fabric,' which fabric has a thickness. A good way to think about this is by picturing your mesh as a running water-bottle (see fig. 1). Even though it has a hole in the middle, the bottle is watertight, since the plastic that holds the water is contiguous. Close holes or use a make solid tool.
  • Boundary edges. Detected if some edges of the STL file are not connected to only one face. This essentially means that the model has holes and does not represent a closed surface. Re-model the areas where the boundary edges were detected in the native CAD software or repair the faulty STL using a hole filling tool.
  • Intersecting faces are detected when two surfaces collide with each other. This error is commonly encountered when multiple bodies are occupying the same space and the software cannot recognize which areas are "inside" the model and which are "outside". Combine the bodies into a single solid, before exporting them into STL or repair the faulty STL with a make solid tool.
  • Non-manifold edges are detected when more than two faces are connected to the same edge. The same edge may be shared by more than one bodies or an extra surface may be defined in the interior of the model, essentially splitting it in two. This error will rarely lead to any problems during slicing, but it should be avoided as the intentions of the designer are not clear. Examine the faulty edges and alter your design accordingly, adding thickness or clearance where needed.
  • Floating Surfaces are a common issue when creating a file from 3D scanning. Random barely visible parts also might have gotten retained when deleting larger chunks during your CAD process. Your software could help you identify these with an inspection tool. Delete floating surfaces.
  • Non-solid surfaces refer to surfaces that do not have a thickness. These can be created in CAD, but cannot be printed in the real world. Extrude the surface to give it thickness.
  • Over-refined mesh. When the total number of triangles of the STL mesh is larger than required. This will not lead to any errors during 3D printing, but it will unnecessarily increase the size of the STL file, making it more difficult to handle. Usually, the small details that are represented by an over-refined mesh cannot be 3D printed, as they exceed the capabilities of most systems anyway (in terms of accuracy and minimum feature size). Reduce the number of vertices, and re-export the STL.