3D Printing Tutorials

Introduction

All Questions regarding 3d printing resources should be sent to 3dta@gsd.harvard.edu
The 3d printing resources are available for use by GSD faculty, staff, and students currently enrolled in GSD courses, and approved researchers.

Some of these printers are self-serve, where users walk up to the equipment and send/retrieve jobs themselves, others are administered and operated by technical assistants. The machines administered by technical assistant have an online submission form.

All printers require users to complete 3d printer training available at the Harvard Training Portal.


The current availability of printers at the GSD are:

Dremel 3D45 FDM - Self Serve, located on the South end of the Third Floor Studio Tray in Gund Hall (as well as 485 Broadway room 224, and Gund Hall L40)

Connex 3 Objet 260 resin - Online Submission, located in L40 of Gund Hall


For comparison of cost please visit 3D printing in the Site Modeling Methods.

Dremel Printer Workflow


Preparing your STL File

  1. Prepare geometry in Rhino
  2. Make sure your design is smaller than the maximum print area for the Dremel L=10" (254mm) x W=6" (154mm) x H=6.7" (170mm)
  3. Convert your NURBS geometry to a Mesh, and ensure that the mesh is watertight, with manifold edges and unified mesh normals.
  4. Convert the model to millimeter units 
  5. Export model as .stl file

Log-In to 3D Printer OS

  1. Go to https://cloud.3dprinteros.com/ssosaml/harvard/auth
  2. Choose "Harvard University" in the SSO login, you will be directed to use your Harvard Key.
  3. Once logged-in you should have access to all of the printers at the GSD. You can verify this by clicking on 'printers' to view a list of all printers.
    1. Individuals who are either term-billable (students) or have authorization to use a 33-digit billing code (for some courses, research, or administrative departments) will see additional "Billable" devices.
    2. If you do not see any printers, you may not be on our access list (most common for those who have cross-registered from outside the GSD) or have not completed required training

Uploading your file to 3dPrinter OS

  1. Select the "Files" tab and click "Add Files" to prompt the upload window.



  2. Once the upload window opens, click "select from computer" or drag and drop your file in the window.



  3. If you are having trouble, please contact 3dta@gsd.harvard.edu

Slicing your file in 3D Printer OS

  1. Go to "Files" and choose your .stl file.  
  2. click on the "Layout" button on the file you want to print.



  3. In the "Layout" window,  you can move, rotate, and scale the model using the buttons along the top of the screen. Use the "On bed" and "Center" buttons to ensure that your model is touching the print bed. 
    If you have more than one object in the same bed, make sure that all of them are in the same plane. the "on bed" command will adjust only the lower object.

  4. You can now click on "Slice" directly from the print window to slice your project, or you can also now find your updated file under the "Projects" tab and select "Slice" from there.
    Make sure to select the positioned file, which will have the most recent date/time stamp.



  5. From here, you can select a slicing profile from the "Profile" drop down menu. We have three different profiles to choose according to your desired print outcome (fast, medium, and hard strength), or just use the "FabLab Default."
    You can also adjust slicing settings manually on the right. Then, hit "
    Slice" or "Silce & Toolpath Preview" to slice your file.  For more information on optimizing slicing settings and slicing profiles, check out "Slicing Profiles" under the "Common Problems" tab.

Loading Material


  1. Place your spool of filament on the spool holder.

2. Guide filament into the feeder tube and pull out the other side inside machine, guiding towards extruder.

3. Select "Filament" from machine touchscreen menu, and then select "Change Filament."

4. The screen will prompt you to "Cut Filament;" if there is old filament loaded into the machine, cut the filament close to the extruder head and remove the extra filament. Hit the arrow button to go to the next screen, and the machine will start preheating.

5. Once the machine has preheated, it will prompt you to "FEED FILAMENT." Feed the free end of your filament (coming from feeder tube) into the top of the print head. Make sure the filament goes far enough in to get caught by the gears, then hit the arrow button to go to the next screen.


6. Wait until you see your filament come through the print head to make sure it's extruding properly. If you are using a different color than was previously used, you will be able to see the extruded filament change color. Once you see the new filament extruding, hit the "DONE" button to finish loading filament.

7. When prompted to select filament type, select "NON DREMEL" from the touchscreen menu. Then, hit "ACCEPT."

8. Select "SAVE" by hitting the green check mark. You have now finished loading your filament!

Changing filament

Leveling the Bed

  1. Ensure the build plate is clean and prepared for printing, removing any debris by washing the plate and applying a new layer of glue stick. (We do not recommend using masking tape.)
  2. Place the Dremel build plate in position by fitting the back part of the plate in the 2 metal brackets located behind the bed and snap build plate into position, making sure both tabs are secure.

      
  3. Leveling


Sending to Print

  1. If starting from the "Projects" tab in 3DOS, you will now see a new file ending in ".gcode," and you can select "Print" from the right side. If you are starting in the slicing window, you can select "Print" in the upper righthand corner.

        

  2. A window will appear showing a list of available printers. Select the name of the printer you have set up your filament and build plate on (double-check to make sure it's the right one!). Once your printer is selected, hit the "Print" button in the lower righthand corner, which will send the .gcode and heat up the extruder/platform to prepare for print



  3. Stay in the printer room until your print starts and make sure that the first layer did adhere properly to the plate. Most print failures happen within the first 3 layers, so stay vigilant until your print gets going.

Removing Your Print

  1. Once the print is complete, the platform and extruder will return to their resting positions and the screen will prompt you to clear the build platform
  2. Remove the platform from the printer by undoing the two black clasps from the front of the platform



  3. Cut your filament close to the top of the extruder. Please be mindful that cutting too close to the extruder can lead to clogs, be a good peer and leave enough filament in the extruder so other students can use the machines with ease.



Objet360 Workflow

Machine Specifications

  • Minimum Recommended Thickness: 0.030″
  • Maximum Build Envelope: 10″ x 9.9″ x 7.9″ (Objet260) or 11.57″ x 7.55″ x 5.85″. (Objet30)
  • Horizontal Layer Resolution: 0.0006″ or 0.0011″ (Objet30)
  • Multi-material printing within one part
  • Files over 25 MB must be reduced in size, or printed as multiple parts.
  • Users billed by GSD for materials used
  • Located in L41

Cost is assessed by weight.

Model Material costs $0.25/g

Support Material Costs $0.10/g

Jobs for the Objet are to be submitted through the FabJob App and are on a queued basis with sensitivity to print length. We recommend you submit your jobs a week before you will need them in order to accommodate for post-processing time and geometry issues.

Materials

One of the things that sets the Objet printer apart from other processes is its ability to print with multiple materials. Because the Objet works similarly to a 2D UV printer, it can dither (or mix) materials at a fine grained level to produce intermediary working properties in what Stratasys calls "Digital Materials". 

The pure materials that the Fablab stocks are VeroPureWhite (rigid white), a VeroClear (rigid clear), and TangoBlack+ (flexible black). These materials can be printed in either a matte or glossy finish. 

When submitting a job make sure to denote in your file name and the notes section of the submission form both the material and finish of each component. If you are interested in using digital materials, come talk to us before submitting so that you can properly denote the material mixtures in the submission.


Considerations

The Objet is capable of high detail and geometries that a impossible to create with any other method of printing. The trade off is that post-processing can be a time consuming and difficult process, and printing is an order of magnitude more expensive than other processes. The Objet is essentially a 2 dimensional UV Printer, which has been given a Z-axis. The reason it is able to achieve such fine detail is because of the specially formulated low viscosity resin it uses. For exactly this reason, the Objet is unable to print overhangs of any angle without support material. It is also important to note that large thin pillars have difficulty printing because mechanical resonances within the machine.

Given the many options and considerations invovled, we encourage you to come talk to us as soon as you have an idea that may make sense for the Objet, so that we can walk you through the design process.


Printing with Multiple Materials

FILE PREP (should be completed by the student)

  1. The Objet260 can print with multiple materials at once. In order to do so, one must save all of the geometry with different desired materials as separate .stl files.
  2. Separate the NURBS geometry into layers corresponding to the desired material (i.e. veroclear layer, verowhite layer).**



  3. Select all of the objects on the first material layer and convert to mesh. It is important that the geometry remains in the original model position and not separated away from the model.



  4. Export the mesh(es) as an .stl file. Append the material name to the end of the .stl file (i.e. filename_veroclear).
  5. Repeat with the remaining materials.
    **Make sure that none of the different material meshes intersect with meshes of another material. All geometry must be properly Booleaned beforehand so that there are no intersecting volumes. The printer doesn't know how to interpret an intersection that contains two different material definitions.

Note: if your geometry is not composed of mostly planar faces, it will be best to convert objects within assemblies to meshes before Booleaning them from one another. Because the Rhino meshing algorithm is not sensitive to the details of other shells, this is the only way to ensure that objects within an assembly have exactly the same geometry at the surfaces where they contact one another. 


Slicing Profiles

To promote more expanded use and efficiency with the Dremel printers, we have made some new basic profiles that address some common problems users have in the lab and introduce some wonderful innovations in FDM 3d printing that make prints faster, easier to post process, and more reliable. Slicers have many different settings which can be tuned to your liking or specific needs, but for our purposes, the primary features we are concerned with are support material, bed adhesion, and infill settings. If you are interested in learning more about slicing or have a specific need that is not covered in this primer please come talk to us

Screenshot of 3D Printer OS interface with drop-down showing different GSD slice profiles.

Support


Standard SupportsTree Supports

In the profiles you will see some with standard supports which have been what was normally generated when overhangs of a certain angle were generated during slicing.

Others will have “tree supports.” In contrast to traditional supports, tree supports are generated by an algorithm that generates a tree whose branches come to support overhangs in the model. Tree supports are a single line thick and are much easier to remove than traditional supports. They use a fraction of the filament of traditional supports and take a fraction of the amount of time to print. Tree supports are particularly suited to doubly curved surfaces and organic forms. The only negative of tree supports is that they tend to not work particularly well on models that are particularly small (under 2cm (about 0.79 in) in any dimension).  
 

Adhesion

The key factor in determining whether your model will adhere to the build plate or not is whether the build plate is clean with a thin coat of glue stick on the bare glass. However, even if your build plate is pristine, depending on the model's geometry, you may have issues with the print warping off the bed. This is normally a problem for large models that have a large flat face against the build plate. Within the profiles you will see options for using either a “raft” or a “brim.”


Skirt

A skirt extrudes several lines of filament outside of the perimeter of your part. This is mainly done to ensure that any extra filament left on the nozzle is purged before printing begins but can be a good indicator of whether or not the print is going to adhere to the bed during the first layer. It does not aid the model in adhering to the bed.

Brim

A brim extrudes several lines of filament around the footprint of your model to increase the surface area of the model's connection to the build plate. In most cases a Brim will only add a short amount of time to printing and will greatly increase chances of success, especially with smaller models.


Raft


A raft instead generates a mesh of filament below your model that allows for the filament to contract as it cools without losing contact with the build plate. While rafts add additional print time and use a small amount more filament, we recommend trying one out if you are having problems with bed adhesion, especially on larger models.
 

Infill

Because the printers at the GSD serve a wide range of uses, we created profiles that reflect these uses and optimize where possible. The three main types of infill we use are Cubic, Gyroid and Lightning.

Cubic Infill


Cubic is the default infill pattern because it is fast and efficient. It generates closed pockets of air inside of the model that give it slightly more strength than 2d infill patterns.  


Gyroid Infill


Gyroid infill is based on a continuous minimal surface. The gyroid pattern forms one continuous hole through the print, so that if needed, parts can be filled with another material to increase strength and rigidity after printing. Gyroid infill is also extremely strong and is well suited for functional components.


Lightning Infill


Lightning Infill is a smart form of infill that uses an algorithm, like the one used to generate tree supports, to support your model only where it is needed to print. The easiest way to think of it is as an optimized internal support structure. Lightning infill is not strong, but depending on model geometry can decrease print time and filament usage by a factor of 3. 



Bed Adhesion

Build Plate Maintenance

The most frequent problem users have with 3d printing at the GSD is with bed adhesion. Of those cases, 90% of problems come from a dirty build plate. We strongly recommend, after every print, you clean your build plate thoroughly with soap and water. While glue stick can help as a binding agent between the glass plate and the filament coming from the extruder, at a certain point, excessive and uneven glue application leads to deviations in the print surface that do more harm than good. Using default settings, each layer of a 3d print is about the thickness of 2 human hairs. If your glue application is particularly thick, it will interfere with the printers mesh bed leveling command, leading to a clogged hot end (no filament extrusion) or extrusion too far from the build plate surface (spaghetti). The more often you clean you build plate the easier it will be to keep clean.


Bed Leveling Procedure

A second factor that can contribute to failed bed adhesion is a problem with how the assisted bed leveling procedure is implemented on the Dremel machines. In this process, the printer attempts to define a plane through three points. The first point it probes is closest to the z axis and is understood by the printer as fixed. It then tries to align all points to that height by prompting users to rotate bed leveling knobs until they are at the proper height. The problem with this approach is that the points the machine has access to probe are not at the direct pivot points that define the plane. For example: if point A is at 150mm, points B and C are at 140mm, when I raise point B to 150mm, because the printer does not re-probe previous points, it is not aware that the position of point A has changed. This offset between probe points and the actual point that defines the plane can introduce error beyond what the printer can compensate for. We recommend that, during leveling, if you need to make any adjustments to either the left or right leveling knobs, that you run the leveling procedure again until no more adjustments are needed.

Geometry Problems

Finally, the geometry you are trying to print might be difficult for the printer to produce. These geometry problems normally break down into three categories.

If you are having trouble printing a model with a large flat face that is aligned to the build plate, chances are you will need to use some form of bed adhesion aid available within the slicer. Larger models benefit from the usage of a raft to ensure that molten plastic can cool as it shrinks. Please refer to the Printing Profiles page for more information on adhesion options.  

Second, it may be the case that your geometry is not aligned properly to the build plate. Please refer to the following section on Placing Meshes Flat on the Build Plate for more information.  

The third reason geometry may make bed adhesion difficult is the presence of small features or thin walls. The section "Retraction and Small Features" discusses this topic more in depth.


Mesh Problems

The second most frequent problem users have printing at the GSD is an underlying problem with their mesh. In this section we will discuss some of the common problems users face with meshes and how to solve them.

Non-Manifold Meshes

The biggest problem many users have with their meshes is that they are non-manifold. A manifold mesh is a mesh that has a clearly defined interior and a clearly defined exterior. This clear definition of inside and outside enables our slicing software to understand and translate a set of discrete points into a solid surface. When a mesh is non-manifold, our slicer interprets our model as a set of infinitely thin walls while still attempting to understand as a continuous enclosed volume at each local point in the slicing process. This problem can lead to layers where the slicer interprets our geometry in a way that we do not want it to. Often this can be seen as skipped layers, layers of the print that are printed as support, and other unpredictable behavior.  
 
The best way to see if this is the problem you are having with your geometry is to use the “ShowEdges” command of the polysurface you have made the mesh from. The “naked edges” option this will show the edges of polysurfaces that have not been properly joined into a closed polysurface. Once you have identified the errors in your surface, trim and recreate the surfaces of your mesh until you have a closed polysurface. Then you can mesh and export your object to the slicer.

It is important to note that meshes intended for 3d printing should always be exported from rhino as an STL file. OBJ files and other formats contain additional information about the edges of NURBS surfaces that may be misinterpreted as non-manifold edges by the slicing software.
 

Self Intersecting Meshes

Another reason a mesh may not be understood properly by our slicing software if we have more than one intersecting mesh, or a self-intersecting mesh where a portion of the geometry we want to print is understood as both inside and outside simultaneously. This can lead to problems where one manifold surface is inside the volume of another again leading to unpredictable slicing behavior. If the problem is just two intersecting closed polysurfaces, using the “BooleanUnion” command on the two polysurfaces should fix the problems. If their are coincident defining points in the two or more objects you are attempting to union, it is very likely that you will receive the error "BooleanUnion Failed". In some cases meshing the objects and then performing a MeshBoolean command will yield better results. Keep in mind that working at a printable scale in a file whose dimensions are on an architectural scale will result in rounding errors where non-coincident points to be understood as in the same place. Best practice for these situations is to perform all geometry operations at larger scale and then scale the object to printable size.

If the object is self-intersecting, or if the boolean union command fails, we recommend reconstructing the polysurface. Unfortunately, there is not a one-size-fits-all approach to reconstruction within Rhino. The best advice to to take duplicate the edges of the surfaces comprising the polysurface you would like, generate all the flat faces that you can and then reconstruct the rest of the surfaces in whatever way is best suited.

The closest thing to a general approach is using a voxel based Remeshing algorithm within a mesh-based software like MeshMixer, MeshLab, or Blender. With this approach beware, flat faces may no longer stay completely flat and file sizes may become unwieldy. A step-by-step tutorial on remeshing within Blender can be found here.

Small Features

The first issue with small features in a print may arise from thin walls or pillars being outside of the resolution that the printer can reliably produce. We recommend at minimum, the thickness of your geometry is at least 2.4mm. 


A second issue that can arise when printing small features is a problem of too much Retraction. When 3d printing, the machines move filament through a melt zone in the hot end to deposit liquid plastic and create a form. Because plastic both expands and becomes a liquid at printing temperature, when the printer is traveling between extrusions of material, it uses retraction to suck filament back up into the hot end and prevent oozing and defects on the surface of the print. 
 

Because the filament is molten within the hot end, when retracting, the filament is not retracting as a solid mass. Instead the printer relies on the negative pressure within the hot end that retraction creates to stop the filament from oozing. Because the molten plastic in the hot end is elastic, the pressure takes a bit of time to stabilize. When we have excessive retraction, we get two issues: stringing, which is when small strands of filament are still able to exit the nozzle leading to what look like small wisps or hairs of filament on our prints, and under extrusion which leads to weak prints with visible surface defects. Because this problem is normally one of not giving the hot end enough time to get to the proper pressure, where one problem is visible, the other is often present as well. This problem is particularly common when users attempt to batch out many of the same object with small features.  

 The best way to fix this problem is by preventing the need for the printer to retract excessively. Often this just involves orienting your mesh in a different direction so that more continuous lines can be formed. It may also help to slice your models into pieces to aid in this step. For example: if I were printing a plate full of Breuer chairs, I would cut the model into several pieces that could each print flat on the build plate rather than trying to print them as one 3-dimensional unit.  

 Often when users are having this problem, there is another fabrication method that will lead to better looking and easier to produce parts. If you are having this problem, come and talk to us so we can discuss alternative methods of fabrication. 

Placing Meshes Flat on the Build Plate

First, we will see why having a properly oriented mesh is necessary for our success in 3d printing. In Rhino, I generated a cube and rotated it less than a degree in both the X and Y axes. This problem arises most often with components of much larger massing or site models so the rotation of the model can be thought of as what might happen is slicing planes are slightly tilted or if Rhinos snapping accidentally snapped to a point close to, but not in plane with the one you meant to draw. Here I have just imported the model and clicked the “On Bed” and “Center” buttons in the transform menu within the layout screen.

After slicing this model with the “FabLab default” profile, it looks like it should work, but by reducing the "Range” in the view options at the right side of the screen to “from 0 to 1” I can see that the first layer of the model is only a small portion of the surface I want to touch the build plate.

There are two potential causes of low bed contact during the first layer. The first and simpler one is just that the rotation of the mesh is skewed. If your mesh has a completely flat face on the bottom all that you need to do is use the “Orient3pt” command to properly align your object to the ground plane. If you can, do this to the polysurface version of your geometry. With a mesh sometimes point density makes it difficult to select 3 points on the same flat plane. After selecting 3 points on a flat surface of your geometry, select the origin point, and then with “ortho” on, select a point to on the x axis and an orientation point on the y axis.  

The more complex of the two causes is that the bottom of your object is not truly flat. When this is the case with a polysurface, it is recommended that you trim the bottom surface with a Boolean operation. If this is the case with a mesh, you can do the same with a mesh Boolean. If you are having the problem consistently, come talk to us so we can help figure out what is going wrong during mesh generation.

With either of these techniques, it is recommended that you set your object at its proper origin and scale for easier layout within the slicer. Rhino uses the coordinates of 0,0,0 as the origin point for the meshes it exports. Once your object is properly oriented, it is recommended that you use a bounding box to move the center of the bottom face of the bounding box to the origin point and scale to the desired scale in millimeters before exporting. 

Remeshing Within Blender

  1. Download the current version of Blender from www.blender.org 
  2. Open a new file by opening Blender and clicking anywhere in the 3d viewport
  3. First it is recommended you configure your UI so that the "Face Orientation" overlay is on, and so that scene statistics are enabled in the Preferences Menu. Your preferences will be saved but you will need to turn on the Face Orientation Overlay every time you open a new file. 



  4. The Face Orientation Overlay will color your mesh so that the "Inside" side of each face is colored a bright red and the "Outside" side of each mesh face is colored blue. This overlay allows us to visualize and verify that our mesh is a coherent object that could actually exist in space. If the object is not coherent, we can adjust the direction of certain faces to make it coherent.

    Scene Statistics are visible in the lower right section of the bottom toolbar in the Blender window. They contain information on the scene's face and help us monitor our computer's memory during these costly operations. As with any intensive 3d software, remember to save early and save often.

  5. Once your preferences are set, close out of the preferences window, click anywhere on the main 3d Viewport and press “A” to select all and “X” to delete. We should now be left with an empty scene
     


  6. From top menu select “File->Import->.stl” and select your STL file from the file browser.



  7. This will import your file and automatically select it. If your file is not visible, it was exported far from the origin point in Rhino. You can either fix this by re-exporting from Rhino or within Blender by right-clicking in the 3d Viewport and selecting “Set Origin-> Geometry to Origin” in the menu options. 

  8. Pressing “N” will reveal item dimensions.



    Blender’s default scale is in Meters but upon export is interpreted as Millimeters. When performing non-destructive operations like Remeshing, Blender operates on the object as if it were at full 1:1 scale and then alters the geometry. If your file is particularly large it is recommended that you scale it before doing any computationally heavy operations. Meshes can be scaled by pressing “S” and then scaling factor followed by “enter”. As an example, below is same mesh with the same settings with scale applied and scale not applied. Their polygon count differs by an order of magnitude.



  9. Once your mesh is scaled, from the dropdown menu select “Object->Apply->All Transforms” 



  10. Next, we will re-mesh our object. This uses Blender’s “Modifier Stack” to parametrically modify our geometry. This stack can be accessed by clicking on the small wrench on the lower right-hand menu of the screen. Once within the modifier menu click “Add Modifier” and type “Remesh” 



  11. As discussed before, the default setting is locked to the scale of the object. A smaller voxel size will lead to greater resolution, while a larger voxel size will lead to a smoother and easier to work with final model. You should adjust the “Voxel Size” setting until you are happy with your mesh but be aware if there are any issues that seem to persist in the process of remeshing no matter how small your voxels get, it is very likely that the geometry you are using is not a physically possible geometry. By this we predominantly mean, infinitely thin surfaces. Unless you are working with a particularly complex organic surface, your polygon count should stay below one million faces. One way to mitigate this problem if you have particularly sharp features in your geometry is by using the “Adaptivity” feature in the Remesh modifier. To check this automatically, make sure to enable scene statistics. 

  12. Once you are happy with your re-mesh resolution, apply the modifier by clicking on the downward arrow above the modifier and clicking “Apply” 



  13. Because of the way the remeshing algorithm works we need to do a bit of cleanup before we are ready to print to make sure we are exporting a single solid object as our mesh. With your mesh selected press “Tab” to enter into “Edit-Mode”. Select a vertex from the body of your main mesh and press “L” to select the other vertices in that shell. When you do this, most of your object should turn an orange color.



  14. Next press “Command- I” to invert your selection. You should now see some small clusters of vertices turn orange. Press “X" and select "Vertices” to delete these outliers and press “Tab” to exit Edit-mode. If you do not see any small orange clusters it means the remeshing algorithm produced no outliers when applied to your mesh.  
  15. Finally, with your mesh selected, select “File->Export->STL” in the top menu. And save to wherever you would like in the file browser. If you have multiple meshes in your Blender file, during export make sure to select the "Selection Only" option in the mesh export window. 

     


    NOTE: Remeshing can sometimes make a face that was flat in rhino not completely flat. If you have a known surface that will be facing down onto the build plate, it is a good idea to perform a boolean function within Blender to remove a small amount of aberrant material, re-flattening that face. Boolean operators can be found in the modifier stack by searching for "Boolean"

 


Reverse Engineering Meshes to NURBS 

This page will cover how to quickly and efficiently reverse engineer meshes into NURBS surfaces for use in Mastercam and other modeling purposes within Rhino. While Mastercam and Rhino will understand meshes that we merge from Mesh-Based workflows, there are a few reasons why reverse engineering is useful and will save you time in the long run.  
 
Mastercam generates toolpaths by analyzing the mathematical definitions of the surfaces it wants to machine. Meshes are discrete with 3 points defining a set of flat faces.  The geometry of NURBS surfaces is defined by sets of “Non-Uniform Rational B-Splines," which can be manipulated in 3 dimensions. NURBS surfaces have infinite resolution where the resolution of a mesh is dictated by its point density. 
 
Generally, the way Mastercam generates tool paths relies on a set of algorithms that determine the tool’s distance from the geometry, attempting to fit within a certain tolerance while considering other constraints. Because the tool paths are defined more like NURBS curves than as discrete meshes, using NURBs as your input geometry results in faster computation time. For example, a mesh of several million polygons might take 30 minutes to compute each time we make a change to a toolpath while a NURBS surface with a similar geometry may only take a minute or two.  

Similarly, Rhino's internal engine views meshes as sets of mathematically defined trimmed planes. This is considerably more computationally expensive the more polygons we have. 
 

  1. If you have the option, export your mesh from whatever software you are generating it with as an OBJ file. Rhino responds better to the quad meshes that OBJ files support, but it will still work with triangulated file formats like STL.  
     
  2. Import and scale your mesh to the size. 
     
  3. Next, we will use “QuadRemesh” to reduce the polygon count of your mesh. QuadRemesh uses a detail sensitive algorithm to reduce the polygon count of your mesh while preserving as much detail as possible. It does this by analyzing the flow of the surfaces based on quad curvature and surface normal deviation of surrounding polygons. Entering QuadRemesh into the command console will bring up a menu with options for tuning this process.  
     
    The most important option within this menu is “target face count.” Depending on your input mesh, the target face count will vary. A higher target face count will lead to more NURBs surfaces for Mastercam to compute, while a lower face count will lead to greater fine detail preservation in the mesh. It is important in this step to think about the final scale of your machined object, the material you are machining, and the tooling you will be using. If your final object will be white foam, the limiting factor for detail in your model will be the material itself. Similarly, if I am planning to mill a large site model with a ¾" ball end mill, the fine crevasses of my original mesh will not be preserved because the tool does not have to proper geometry to recreate those details. Conversely, if I were milling a model with lots of sharp peaks and valleys out of Renshape with an 1/8” ball end mill, I would choose a higher face count. For this demonstration, we used a target face count of 20000 faces, but it will be a matter of experimentation for you. The best way to do this experimentation is by isolating a small part of a higher density mesh, remeshing to various levels of proportional detail, and simulating the results within Mastercam using the toolpaths and tooling you plan to use. While this will not show the level of detail various materials can reproduce, we have a set of wonderful material samples in the CNC TA room you are welcome to use to help guide you. 
     
    Once you have decided on a target face count, check the “Convert to SubD” option within the menu. SubDs are a cross between mesh and NURBS surfaces which retain the smooth resolution of NURBS while being able to be manipulated like a mesh. If you are working with a more complex closed mesh like a 3d scan, guide curves can be used to help dictate creases and topological flow of the SubD. If you have questions about what makes certain mesh and SubD topology better than others, please come talk to us.  
     
    Once your settings are input, press enter and wait for Rhino to compute. Depending on your input mesh, operating system, and computer specs this computation will take anywhere from a few seconds to a few minutes. QuadRemeshing is not multi-threaded, or hardware accelerated on Rhino for Mac. 
     
  4. Once remeshing has finished computing, enter the “ToNURBS” command with the newly generated SubD selected. While the ToNURBS command has its own set of options, we recommend you stick with the default settings. This command will automatically pack smaller faces into larger NURBS surfaces and will finally join those surfaces into a single polysurface.  
     
    Once you have a generated NURBS surface, finish preparing your file according to the step-by-step Mastercam tutorial and merge with the proper template. 
     

Additional Notes:  
 
While QuadRemesh does an excellent job of making the mesh manageable for NURBS conversion, some meshes are simply too large for it to compute. In these cases, it is best to first process the mesh using the “ReduceMesh” command within Rhino or to use a software package that is more suited to handling mesh geometry. Blender, Meshmixer, and MeshLab are all free options that are optimized for mesh-based construction, alteration, and repair. Come talk to us if you have questions. 
 
The process described above has one point of potential annoyance concerning the initial SubD conversion when remeshing. Because SubDs are interpolated based on topology, they tend to leave rounded corners at the edges of surfaces. The easiest way to fix this is to select the “SubD Corners” option when QuadRemeshing. Alternately, you can trim the surface just inside of its border once you have generated your NURBS surface. 

 


Additional Tips and Tricks

In the complexity of what we can produce, it is easy to forget that the FDM printer is a set of connected simple machines with simple methods of control and limitations. Just like the table saw is not intended to cut curves, the 3d printer has difficulty producing thin features, dramatic overhangs and struggles with sharp changes in motion. Because of a large community of hobbyists and researchers we have a plethora of clever solutions that allow us to produce geometry that the machine would not otherwise be able to create, but even these solutions have a limit, and staying within certain parameters when designing for the machine is in your best interest as a designer and maker.

Minimizing Support and Printing Large Models

The most frustrating and time-consuming aspect of working with 3d printing can often be removal of support. Support is required when we have certain degrees of overhang on the parts we would like to print. In addition to making post processing time consuming and difficult, features that require support often reduce the strength of final parts, can have poor surface finish, lead to waste, and are a major cause of print failure and can lead to increased print times. 

Part Orientation 

The most important part of minimizing support is part orientation. The first consideration when orienting a part should be that a flat face is oriented in plane with the build plate. If all the faces of your geometry are curved it is recommended that you follow the instructions in the next section on splitting models into parts.  

The second consideration when orienting your parts should be the sorts of features that will require an overhang and if that support can be eliminated by rotating that model. 

Below is an example of geometry that is common at the GSD, a small model of a cantilevered structure with a few small balconies and additional protruding features. At the angle the model was designed, the print requires more support than the actual model. By tilting it 45 degrees, we have eliminated the need for all support. 


 

This example integrates a small bevel on the back corner specifically to accommodate this printing orientation. In many cases, it is more effective to print a small object to “fill in” for the altered geometry and allow for less support, than to print a single model with a large amount of support.  

While most of the models printed at the GSD are non-functional objects, it is important to note that changing the orientation of your part can have structural benefits as well. 3d Prints are particularly strong in-plane with their layer lines and are particularly weak in the perpendicular planes. One way of increasing the strength of printed parts that conform to a series of mostly flat and right-angled features is to orient the part so that those planes are diagonally broken up across different layers. 

Cutting Up Models into Printable Parts

Sometimes it will either be necessary or useful to split your model into multiple parts. In this section we will discuss why this might be useful, even for models that could be printed on one plate, and how to generate registration marks so that your finished prints will align into a singular object.

Splitting a model into sections is mostly useful for 2 reasons. The first is that the model is simply too big to fit on the build surface. In this case it is reasonable to divide the model up using a grid and print individual sections. Even for models that do not exceed the build dimensions of the printer, this method can reduce the risk of longer individual prints. The second reason you might want to split a model is that the model has several sets of features where no single orientation on the build plate is optimal for all of them. In the example below, the entire surface of the model is closed and there are several angles that exceed the limits of unsupported printing. In order to accommodate the limitations of the printer, the model is rotated and split into two separate parts which can be given registration holes and joined after printing. To do this, simply perform a BooleanSplit operation, and Cap the surfaces.

A common use case for this technique is staircases that change in direction and non-flat building faces.

Once your model is split, there are a series of joining features that are useful for realigning your parts after printing. The most intuitive and easiest is the use of wooden dowels. The benefit of dowels is that they are easily available, cheap, can be cut to length in the woodshop, and are dimensionally accurate enough for most purposes. Using at least 2 dowels ensures that your parts will align and not rotate. For reference, a common and inexpensive dowel diameter that is both easy to cut but is strong enough to make a reasonable joint is ¼", but larger is also acceptable. 

To use dowels, simply construct a cylinder, whose diameter and length corresponds with the dowel pins you would like to use and perform a BooleanDifference operation. Make sure to perform this operation before moving or arranging models within your CAD program to ensure proper alignment.  

For features that are too flat for the usage of dowels, small low angle pyramids, like those shown below can be added to one object and subtracted from another. With this approach, it is best to slightly undersize the positive pyramid so that the alignment feature properly nests. The proper amount of under sizing can be solved by analyzing layer lines and angles but for most purposes, 90-95% scale should work. Note that for 3d printed molds, this sort of joining feature also serves as an excellent registration key.  

Additional Considerations For Designing Printable Parts


Acceleration 

While 3d printers are relatively accurate within the constraints of their motion system, movements during printing can vibrate components of a printing introducing an artifact called Ghosting. This artifact most often appears on flat surfaces after a sharp angle in the print. When these sharp angles in the vector of the print head’s movement happen, the printer’s resonant frequency is amplified leading to vertical lines within the print.  

There are some clever tricks for combating these resonances but unfortunately the Dremel machines are unable to implement them due to firmware limitations. Instead, it is best practice for parts to integrate fillets on part geometry that is in plane with XY movement wherever possible to reduce artifacts.  

Cooling Time  

When printing, extruded filament is in a viscous liquid state. Most modern print heads include a small fan that is dedicated to cooling your part as you print it to “freeze” the filament after it is deposited onto the previous layer. 

When printing individual small parts on the printers, this cooling time can lead to print defects and failures. Within 3dPrintOS, there is no native way to fix this problem. To work around this problem, this is the only time we recommend printing multiple parts on the same build plate, to give each layer additional time to cool. 


Post Processing 


The ways prints are used at the GSD vary widely. Sometimes it is acceptable to use a model right off the build plate as a sketch of what a design looks like in 3-dimensional space. Other times, we are looking for a high gloss model with a professional finish. For the times that we are looking for a slightly more finished model, additional post-processing is required to remove layer lines and artifacts from the printing process. In what follows we will discuss some methods and tools for each step of this process.  

 

Joining prints 

When joining multiple prints into a larger model, there are several options of adhesive you may want to use. Titebond 2, or waterproof wood glue is a good, nontoxic option is you can clamp the pieces together easily for the longer amount of time it takes the glue to dry.  

Alternatively, cyanoacrylate (CA) glue combined with baking soda forms an extremely hard and long-lasting bond between parts almost instantly. If you decide to use CA glue, make sure to wear gloves and safety goggles before handling the material. For this process, the thinner the CA glue the better. Starbond’s “Water Thin CA” has yielded reliable results.  

First position your parts such that joining, or registration marks, are registered with one another and clamp if possible. Sprinkle a small amount of baking soda in the gap created by the seam between parts and remove any excess. Then slowly wick the thin CA glue into the seam. This will instantly react with the baking soda, accelerating the curing process and forming an immediate bond. The reaction is slightly exothermic so just be aware that it may feel warm to the touch.  


Filling and Abrading 

When people think of removing layer lines, they often think of sanding. While sandpaper can be a fantastic tool, integrating rasps, files, and scrapers into the workflow can expedite the process significantly.  

For flat or smooth convex surfaces, scrapers are an excellent tool for quickly achieving a good surface. Scrapers are just a piece of steel that cut rather than abrade material away. The bottom edge of a scraper has a small burr which acts as that cutting edge. Small sets of scrapers are available for cheap on the internet and, when working with soft plastics like PLA, very rarely need to be sharpened. Compared to sandpaper, they remove material quickly. In a pinch, boxcutter blades within a holder can perform a similar function, just make sure the work is properly secured so that your hand never has the chance to come in contact with the blade. 

For more significant material removal of defects and layer lines on overhanging features, files and rasps are fantastic tools. Rasps remove more material where files tend to serve as a mid-point between a rasp and sanding. For fits around squared features, small needle files are useful for dialing things in. For tight and difficult to reach spaces, riffler rasps and files are a great tool to have on hand.  

Finally, when you are happy shaping and removal of most layer lines on the print, sandpaper will be the most useful tool for bringing that surface to a uniform high-quality finish.  

When finishing a surface, it is best to work both additively and subtractively. First, it is best to fill all the voids in the model with a filler.  Drywall compound works great for this purpose but talk to lab staff if you are curious about other fillers. After your filler sets, sand with a 80 or 120 grit sandpaper until filler is only present in the voids it is intended to fill. Repeat this process as many times as is necessary until you get a uniform surface.  

After attaining a uniform surface with lower grit sandpaper, make sure to clear the surface of dust and debris from the previous grit and re-sand the whole surface with the subsequent grit up to 220 or 320 grit.  

Once your surface is smooth, you can then prime your model. There is a plethora of primers you can use. Many students like Rustoleum’s “2 in 1 Automotive Filler-Primer" because it has high solids content, dries quickly and is wet sandable. For a high gloss finish, it is useful to go through the same sanding process as before. Prime the work, wait for 24-48 hours for it to fully dry, wet sand with 400 grit paper and repeat until you have a uniform evenly primed surface. Because successive grits of sandpaper remove less and less material, it is not necessary to reprime your object between these higher grits. 

 

Copyright © 2024 The President and Fellows of Harvard College * Accessibility * Support * Request Access * Terms of Use