4.2: 3D modeling and print files
- Page ID
- 120113
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\dsum}{\displaystyle\sum\limits} \)
\( \newcommand{\dint}{\displaystyle\int\limits} \)
\( \newcommand{\dlim}{\displaystyle\lim\limits} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)By the end of this section, learners will be able to
- Understand how 3D modeling relates to 3D printing
- Be capable of identifying common issues in a 3D Model
The first step to bringing any idea to reality using 3D printing is to create a digital 3D model. Modeling is a separate pursuit and is not the focus of this handbook; however, this section will briefly cover it as it relates to the actual process of printing. Some common programs used for 3D Modeling are AutoCAD and Fusion360 by Autodesk, as well as Solidworks by Dassault Systèmes. Blender and FreeCAD are excellent free alternatives to the aforementioned software. TinkerCAD, Sculptris, and Womp3D are much more beginner-friendly modeling apps, and TinkerCAD is available to use in your internet browser after signing up for a free account with Autodesk (see Figure 4.2.1 as an example). All these programs are used to make 3D models, which can be 3D printed.
When modeling something intended to work with other objects in the real world, it is important to get accurate measurements; therefore, tools like rulers and tape measures are often used. However, the most useful tool for measuring real-world objects to translate into 3D design is the caliper. Calipers gauge the distance between a set of movable jaws, using either a digital or analog gauge. The adjustable length and ergonomic design of calipers allow them to precisely measure real-world objects and display the distance in an easily readable format. Both analog and digital calipers are available to buy. Digital calipers can usually express measured lengths in both inches and millimeters.
The process of creating a model for 3D printing often involves an iterative design process, as shown in Figure 4.2.3. This process includes analyzing and designing a model, printing and testing it, and then evaluating whether it works as intended. If it does not, the model is redesigned using revised measurements and adjustments. These steps are repeated until a satisfactory final product is achieved.
Another way to obtain a 3D model is by downloading one created by someone else. Today, there are numerous online repositories where users share 3D models that can be downloaded—for free or for a fee—and then modified or printed. Popular platforms include Thingiverse, Printables, and MakerWorld. These sites allow users to browse vast collections of models and select designs that fit their needs. In many cases, if someone has an idea for a print, likely, a similar design has already been uploaded to one of these platforms.
After creating a model in the preferred 3D modeling software, the first step toward printing is to export the model into a format that is compatible with the slicing software. While there are many possible 3D file formats – such as .obj, .dwf, and .acis – the most widely used format for 3D printing is .stl. If this option is not immediately visible, it is often located under the “Other File Types” or “Export as” submenu.
Before exporting, it is helpful to verify a few important details to avoid unnecessary rework later:
- Are the design units consistent with the units intended for printing
- Are all parts of the model that should be joined connected?
- Are all parts model volumetric (solid), or a collection of 2D surfaces?
- Is the scale of the model realistic and sized for printing?
- Have any unused or unwanted elements been removed?
- CAD, “Computer Aided Design”, is the process by which 3D models are constructed using a computer program
- G-code or GCODE: Instructional code read by printers. Defines the path the nozzle will take for each layer, as well as the speed at which the filament is extruded at each point along the path.
An STL file or other 3D model file is not the same as a GCODE file. A GCODE file is obtained after putting an STL file through a slicing software and is the final file that will be uploaded to the 3D printer. Attempting to print an STL file directly on the printer is not possible and is a common mistake. Your printer will likely fail to recognize the file or refuse to print it.


