16
Printing at CityTech written by Patrick Delorey The City University of New York Architectural Technology Dept.

3D Printing Primer

Embed Size (px)

Citation preview

Page 1: 3D Printing Primer

Printing at CityTechwritten by Patrick Delorey

The City University of New YorkArchitectural Technology Dept.

Page 2: 3D Printing Primer

2

This material is based upon work supported by the National Science Foundation under Grant Numbers 1141234.

Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Page 3: 3D Printing Primer

Printing at CityTech3

Introduction

3D printing is an extremely refined & accurate method of producing a physical model of your design. This is simultaneously an advantage and a disadvantage. While the process can deliver highly nuanced results not achievable by other means, it also requires precise inputs.

Unlike modeling for graphical output (such as line drawings or renderings) where any errors, if they are visible, can be resolved in post-processing applications like Photoshop, models for 3D printing require special attention. It can be beneficial to have one ‘working model’ for design experimentation and iteration, and a separate model for 3d printing that is clean, precise, and well organized. It is often easier to begin this refined model from scratch rather than trying to manipulate a messy working model.

Who Can 3d Print?

to be eligible for 3d printing, the following are required:

• your professor must submit a project request form (found at www.nycctfab.com)

• your class must receive a 3d printing orientation• you must complete the checklist in Appendix B• your model must be checked by either Brian or Patrick

to ensure it will print properly

What Do I Need to 3d Print?

In order for a model to be valid for 3D printing, there are four basic conditions it must satisfy (for a comprehensive print submission checklist, see Appendix B):

• all objects must have unified normals.• all objects in model must have thickness (1/8” min.)• all objects must be watertight (closed with no gaps or

holes between joining surfaces).• all objects to be printed must be exported as an .stl

Please note it is your responsibility to ensure your model meets these conditions. CLTs are happy to assist & advise you in preparing your model, but the quality of the model is your task.

Page 4: 3D Printing Primer

Printing at CityTech

Fig. 2 - Build EnvelopeFig. 1 - ZPrint Z510 in Room 813

ZCorp Z510

Similar to how an inkjet printer deposits ink onto paper, the print head deposits a liquid binder onto successive thin layers of powder in horizontal sections of the object, proceeding layer-by-layer until the object is complete. During and after the build, loose powder surrounds and supports the part in the build chamber. This unused powder is removed via vacuum or forced air and recycled, and the finished part can be carefully extracted. Consider these processes as you are producing models to be prototyped. Our printer (Fig. 1) has a maximum build size of 10”×14”×8” (Fig. 2). Models any larger than this must be built from smaller components and assembled together.

Notes on Scaling to Fit

Just as with building traditional physical models, when constructing a model to be 3d printed, consider its size as a funciton of the scale at which you wish to represent the work (i.e. 1/8” = 1’-0”, 1” = 100’, etc.).

It is poor modeling practice to develop an object and to scale it arbitrarily to the maximum size of the build chamber. Conversely, it is also bad practice to scale an object at an arbitrary scaling value to fit within the build chamber. This is doubly true if your object has a thickness that will be reduced to less than the 1/8” minimum thickness for parts to be structurally sound.

The proper workflow to solve these issues would be to digitally develop your model extenisively at true size, selectively choose portions you wish to 3d print, scale those portions (as single surfaces) to the correct scale for your model (ensuring it fits within the build volume provided in the template file), add desired thickness (though not less than 1/8”) to the scaled single surfaces and ensure watertightness (no gaps or naked edges).

This may mean that certain details of your model must be omitted when 3d printing. In fact, it is often easiest to make a separate, clean file that contains only the most significant masses / gestures of your project to 3d print. The objective is to communicate design intent, not to create a perfect ‘mini-building’.

4

Page 5: 3D Printing Primer

Printing at CityTech5

Fig. 6 - Dir Command Showing Surface DirectionFig. 5 - Custom backface color setting

Fig. 4 - Backface color located deep in the options menuFig. 3 - Rhino’s default backface color setting

Initial Setup

To make modeling for 3d print output easier, we recommend beginning using the template file found at (LOCATION), or beginning a new file with these settings:

• set startup template to “Small Objects - Inches”• set absolute tolerance to 0.001” (run Options)• run command CheckNewObjects to ensure it is active• set backface colors (see below)• ensure that your final model build size does not exceed

9”×13”×7” (build chamber size less an amount to allow us to extract your model once complete)

For a more detailed of how to change these settings and how they affect your modeling, see page 11.

Surface Normals

Backface Color

The first requirement for 3D printing is that all surface normals be unified. This is another way of saying that all surfaces should have their ‘outside faces’ facing ‘out’.

This is the problem we are trying to solve in Rhino, but by default, Rhino displays front & back faces of all surfaces as the same color (Fig. 3), but we can change this. Under Tools > Options > Appearance > Advanced Settings > Shaded expand the dropdown menu for Backface Settings and select Single Backface Color (Fig. 4). Select a color for backfaces, preferably one that you don’t use often for layer colors so that it doesn’t blend in. Now your surfaces will differentiate themselves with clearly shown front & back faces (Fig. 5).

Dir Command

Another way to determine orientation of surfaces (and curves, for that matter) is to run the Dir command. When executed, Dir will display the normal direction of a selected surface (Fig. 6) and your mouse will display the uv draft angle at any point on it. (How surface and curve direction is created and determined is covered in greater detail in the Laser Cutter & Curve Geometry Primer).

Page 6: 3D Printing Primer

Printing at CityTech6

Fig. 8 - Be aware of self-intersecting solidsFig. 7 - OffsetSrf with a clean solid

Shelling & Adding Thickness

Since 3D printing requires that all geometry have thickness, we should explore ways of adding thickness to single surfaces.

Minimum Thickness

For the 3d printer we have in the lab, we require a minimum thickness of 1/8” for all models. This is a value that may need to increase depending on the structral configuration of your model. Thin surfaces spanning long horizontal distances may collapse under the weight of surrounding powder in the build chamber and should be made thicker.

OffsetSrf

The simplest command for thickening surfaces is OffsetSrf with Solid: Yes activated (Fig. 7). There is a point of caution, however, with OffsetSrf. If the offset distance is large compared to the tightness of curvature of a surface, the resulting form might be self-intersecting (Fig. 8). In some cases, this will still 3D print, but it is messy and is to be avoided if possible. To avoid this, adjust the thickness of the surface based on the areas of greatest curvature.

ExtrudeSrf

A similar but distinct command is ExtrudeSrf, which will do exactly as its name implies and extrude a surface in any direction you choose. Unlike OffsetSrf which makes a solid of uniform thickness, the thickness of an extruded surface is variable with portions on the surface closer to tangent to the extrusion vector thinnest. Additionally, surfaces connecting the primary surfaces will be coplanar with the plane of the extrusion vector, provided the edge of the surface is also planar (Fig. 9).

Fig. 9 - Comparing OffsetSrf (lt.) & ExtrudeSrf (rt.)

Page 7: 3D Printing Primer

Printing at CityTech7

Watertightness

“Watertight” is a term describing a mesh suitable for 3D printing. It means there are no holes, cracks or missing features on the mesh. The easiest way to describe a good mesh for 3D printing is to think of it as a skin, and filling the inside with water. It is important to create watertight meshes (in conjuction with properly unified surface normals), so that it is clear to the 3D printer what is

“inside” and what is “outside”.

Naked Edges

Sometimes gaps in geometry will be very small (but NOT below our tolerances, see p. 9) or edges will match perfectly but won’t be joined, creating naked edges in our model. Instead of investigating every surface of our model individually, we can use the Rhino command ShowEdges to identify areas of our model needing attention.

When we run the command, Rhino asks us for objects for which to show edges (Fig. 10). A dialog box will appear and edges will be highlighted (Fig. 11). Select the ‘naked edges’ option of the dialog box and a color that contrasts with the layers color of the objects selected. These are the areas you need to fix. If you wish to add more geometry to the ShowEdges query, select Add Objects in the dialog box and select your desired geometry. Similarly, select Remove Objects and objects to remove to limit analysis.

If you are having trouble seeing where the naked edges of your model are (after all, they may be tiny), select ‘Zoom’ in the ShowEdges dialog box. This command will zoom to the extents of all naked edges within selected geometry.

Snapping to Prevent Naked Edges

You should be modeling using the various snapping functions in Rhino to maximize modeling precision. These include the grid snap (toggled with F9, typing Snap, or clicking the Snap text button along the bottom toolbar), as well as the numerous object snaps (accessed by typing OSnap or clicking the OSnap text button along the bottom toolbar, making sure ‘Disable’ is unchecked). Various kinds of objects can be snapped to (listed along the bottom toolbar), and these should be toggled as necessary to make selecting and snapping to your specific geometry easiest.

Fig. 10 - Select objects for which to show edges Fig. 11 - Naked Edges Highlighted

Page 8: 3D Printing Primer

Printing at CityTech8

Watertightness (cont.)

Joining to Repair Naked Edges

Sometimes, geometry will line up precisely edge to edge, point to point, and naked edges will still appear. This is because the geometry hasn’t been linked within the model, so the software still sees these objects as disconnected. You can join these objects together using the Join command.

Note that sometimes objects will be grouped and will select as though they are joined, but still show as having naked edges. To connect these objects, first ungroup them, join as necessary, and then regroup, if appropriate. Grouping does not connect the surfaces. It only aids in selecting specific clusters of geometry in your model.

Non-Manifold Edges

Non-manifold edges are edges in contact with more than two surfaces. This typically indicates one of two things.

First, two or more polysurfaces that may be coincident along a single edge have been combined with a Boolean operation (Fig. 12). While permitted within the software, it is not good modeling practice. The print will crumble along such areas. Fix them by thickening any hairline joints (Fig. 13).

Second, and only with mesh objects, there may be an unnecessary surface within the mesh for defining its boundary (for repairing such an area, see instructions for cleaning up problematic meshes p. 8).

Fig. 12 - Object containing non-manifold edges Fig. 13 - Non-manifold edges removed by thickening

Page 9: 3D Printing Primer

Printing at CityTech9

Mesh Creation & Editing

While most modeling in Rhino is accomplished using surfaces and polysurfaces, meshes are important to understand because our final output will be a mesh (.stl files are meshes). In fact, your 3d printed model will not look exactly like your surface model, but rather like your .stl mesh. The ability to understand and manipulate meshes will give you a finer degree of control in the finish appearance of your printed object.

The same rules for 3d printable surfaces apply to meshes: they must have unified normals, they must be watertight, and they must have a thickness. In order to check for these conditions, you can run CheckMesh.

CheckMesh

CheckMesh produces a detailed description of a mesh object (similar to the ‘Details...’ button in the object properties menu, but with additional information for meshes). While this command doesn’t include tools for fixing issues it finds, it is a good diagnostic tool.

Normals - Backface Colors & UnifyMeshNormals

The backface color options that you set for surfaces and polylsurfaces (see page 4) will continue to work for meshes.

UnifyMeshNormals is helpful for orienting meshes properly. If CheckMesh informs you that “(X) faces that could make it better if their directions were flipped” - you should run this command to unify all normals.

Watertightness - ShowEdges, FillMeshHole, FillMeshHoles, Join, Weld, MatchMeshEdge

Meshes behave similarly to surfaces in terms of watertightness. ShowEdges will still allow you to see the naked edges in your model (of which CheckMesh will inform you). But repairing meshes requires some commands specific to meshes. These commands - FillMeshHole, FillMeshHoles, Join (for meshes), Weld, and MatchMeshEdge are covered in great detail in McNeel’s own guide to mesh repair, which you can find on the ‘S’ drive at (LOCATION).

Page 10: 3D Printing Primer

Printing at CityTech10

Fig. 14 - Highly complex surface to mesh Fig. 15 - Mesh Options

Fig. 16 - Options for OffsetMesh Fig. 17 - Results of OffsetMesh

Mesh Creation & Editing (cont.)

Thickness - OffsetMesh

If NURBS surface geometry is very complex, it can result in sluggish modeling performance (Fig. 14). For these situations, it can be beneficial to convert a developed surface to a mesh using the Mesh command (or from the menu, Mesh > From NURBS Object, Fig. 15) and then using OffsetMesh to provide the necessary thickness, making sure that ‘Solidify’ option is checked (Fig. 16). Meshes are less time-consuming to compute, but they come at the expense of difficult editing within Rhino (Fig. 17). If you notice Rhino having difficulty with offsetting your geometry or behaving strangely slow, consider this option, but only having developed your geometry sufficiently as a single surface and making a copy of it before converting to a mesh. If you need to edit the object, it will be easier to do so as a surface, re-convert it to a mesh and offset again.

Page 11: 3D Printing Primer

Printing at CityTech11

Fig. 21 - Final export optionsFig. 20 - Tolerance for .stl file

Fig. 19 - .stl file formatFig. 18 - File > Export Selected...

Exporting

Once you have closed all your geometry and checked for naked edges, unified normals, scaled appropriately, and added thickness, you are ready to export your model for printing. We will make an .stl file that can be read by the 3D printer. Select the geometry you wish to export, then go to File > Export Selected... (Fig. 18), a dialog box will appear. Select the file type as *.stl (Fig. 19).

Rhino will then ask you what tolerance to use when it converts your NURBS geometry to a polygon mesh (Fig. 20). The default value of .01 inches should work in most situations with our equipment. Lastly, it will ask if you want to save the file as an ASCII or a binary type. Since we won’t be editing the code for the .stl, the binary output is fine and is typically a smaller file size. The option of which to take notice here is the ‘Export open objects’ checkbox which should remain unchecked (Fig. 21, circled in red). This will prevent exporting unprintable geometry. If there are open objects that you try to export, Rhino will show a dialog box with a warning alerting you.

Page 12: 3D Printing Primer

Printing at CityTech12

Global Rhino Settings for 3d Printing

Tolerance

When modeling at the scale of a building, a tolerance of 1/8” is perfectly acceptable, but when scaling your model to 3D print, this tolerance can become misleading, and cause you to create bad geometry. For a model you intend to 3D print, go to Tools > Options > Units. Set the absolute tolerance to 0.001 and the display precision to at 1/64” to make verifying the validity of your model easier & more precise.

Bad Objects

Bad objects are (usually) related to tolerance settings, and if modeling carefully from scratch, are actually a bit difficult to create. The most common way in which bad geometry is created is when values for the geometry fall below the tolerance settings for your Rhino session. Here my tolerance is set for 0.01, and I’ve modeled an open polyline measuring 3, 5, 3, and 4.995 for its 4 segments (Fig. 24). Notice Rhino doesn’t display the remaining distance as 0.005 but rather as 0.01 (our set tolerance) in the dimension. Because I’ve modeled beneath the set tolerance, this object will behave unusually.

With ExtrudeCrv performed on an open curve, Rhino won’t create its caps, even if Caps option is set to Yes. But, if we extrude this particular open curve and set Caps option to Yes, Rhino will try to create them (Fig. 23). Because it cannot read the curve as open, it will consider the curve as closed. Rhino will try to create caps from an open curve and generate a bad object (Fig. 22).

To avoid these issues, we can utilize the Rhino command CheckNewObjects (Fig. 25) which alerts us when any bad geometry is created (Fig. 26). Though it is difficult to create bad geometry provided you are careful, consider that you may not always model from scratch (i.e. importing files created in other programs or modeled by others, or both).

Finally, note that CheckNewObjects remains active between sessions of Rhino. If you close a file and open another, the command should remain active.

Fig. 22 - Open polyline (below tolerance) Fig. 23 - Extruded polyline with caps

Fig. 24 - Gap below Rhino’s tolerance (bad geometry) Fig. 25 - CheckNewObjects command

Fig. 26 -Bad geometry detected

Page 13: 3D Printing Primer

Printing at CityTech13

Appendix A - FAQ

My model is just one solid, it should 3d print, right?

This is a much more complicated issue. It has to do with optimization. You can print it like that, but it will be slower, use more material, & be heavier (and possibly more prone to breakage, depending on geometry). To illustrate, see the diagram below.

While all three meshes look identical when viewed from the outside, cutting a section through each instance reveals that their underlying geometries are significantly different.

Object 1, in fact, will not print at all. The sphere has missing mesh faces and the cones that intersect it aren’t capped. This yields surfaces that are open and without thickness.

Object 2 will print, but has some issues of which you should be aware. The sphere and cones are solid & closed, making them valid, but when printed, each cone will contain unprinted powder that will be impossible to remove.

Object 3 is our most desirable product. The individual objects are constructed to form a skin with a thickness (see the red section line that is clean and continuous).

Not pictured, however is one last helpful detail - a hole by which to evacuate the unused powder and return to the printer. Including this element will help reduce wasteful use of material and make your completed model lighter.

Still, there may be times when you choose to print object 2. Crafting a model such as object 3 is more difficult and more time-consuming, requiring greater attention to detail. Consider these factors as you go about preparing your own models

Fig. 27 - 3d printing validity across a range of mesh geometries

Page 14: 3D Printing Primer

Printing at CityTech14

Appendix A - FAQ (cont.)

I scaled my model down to 3d printing size, and now all the details I modeled are too small to print! What do I do?

The 3d printer has limitations just as every tool does. Think about 3d printing a model just as you would building a model by hand: there are certain details that you omit either because they distract from communicating what you want, or they are simply impossible to render at the given scale. The 3d printer is no exception. While these details can help enhance the ‘realness’ of your model in renderings and line drawings, they aren’t necessarily appropriate for your physical model.

This is another reason that it can be beneficial to begin a new separate and geometrically clean model when you are preparing to 3d print. You can selectively import the most significant gestures from your working model and develop a printable model from that point. Lastly, knowing in advance that you will be making a new file to 3d print takes some of the pressure off when working with your model and helps prevent you from getting hung up on very small details when you should be spending your time pushing your design.

My model now appears very jagged and faceted, but it was a nice smooth curvilinear geometry just a moment ago. What happened?

This is a units issue that comes about when meshing geometry at a scale that isn’t of a sufficient resolution for the scale at which you will be printing. This can be solved by importing the full size model into a file with the units you will be using in the actual 3d print (probably inches), meshing the geometry, and scaling to fit within the build volume of the printer.

I have closed solids with thickness that intersect each other. Will this print?

This will print on our 3d printer. The software is intelligent enough to handle this situation.

Page 15: 3D Printing Primer

Printing at CityTech15

Appendix B - 3d Print Punch List

Before submitting your file to 3d print, please perform the steps outlined at left to make sure that your file has the best chance of printing as you intend.

When you have completed this list, you may submit your prepared .stl file to Brian or Patrick to have it printed. Email all files to [email protected], copying both [email protected] and [email protected] on the submission email. If your file is too large to attach (anything larger than 8 mb), you may send the file via yousendit.com to the same addresses.

In order to have your print completed by your deadline, we recommend submitting your file a minimum of 5 days in advance of when you need it, but 7 days in advance is preferred.

Final scaled model fits within 10”x 14”x 8” build volume (see pages 2 & 7) - make sure that in doing so, your model thickness does not fall below 1/8”

Final scaled model has a minimum thickness of 1/8” everywhere (see pages 5,6, & 8)

Final scaled model contains no points, curves, single surfaces, or duplicate objects (see page 5)

Model has been exported and opened as an .stl in Rhino, with backfaces shown, and been found to be properly oriented (see page 4)

Model has been opened as an .stl in Rhino shows no naked edges when command DupBorder is executed

[ ]

[ ]

[ ]

[ ]

[ ]

Page 16: 3D Printing Primer

Printing at CityTech16

Appendix C - Rhino 5.0 for 3d Printing

Currently, Rhino 5.0 is in beta testing, but if you have your own copy of Rhino 4.0, you can download a (relatively) stable beta release for your own work. Be aware that Rhino 5.0 files cannot be read by Rhino 4.0 (the version on the computers in our labs), so if you plan to work on a file on multiple machines, don’t forget to save your file as a type readable by Rhino 4.0.

There are a number of changes and additional commands in Rhino 5.0 that you may find helpful, especially with regard to 3d printing.

ShellPolysrf

This command will create a shell structure from a polysurface with a specified thickness. Provided that it doesn’t return an error, it will give you a watertight model, ready to export for 3d printing.

OffsetSrf

While not a new command per se, OffsetSrf behaves differently in Rhino 5 than it does in Rhino 4. In Rhino 4, when OffsetSrf is applied to a polysurface, all faces are offset normal to the surface at any given point. With most geometry, this results in an interior corner between faces. In Rhino 5, when OffsetSrf is applied to a polysurface, Rhino will attempt to create a continuous surface all the way around by creating rounded exterior edges.

CheckMesh

The same plug-in tools that exist for Rhino 4 now exist as standard tools in Rhino 5 - tools for diagnosing mesh issues and repairing them. It will also bring up the ShowEdges dialog box that we have seen (see p. 5) in Rhino 4. The tool operates like most wizard tools: it will detect most issues automatically and attempt to fix them.

There are a number of other reasons to experiment with Rhino 5, but these are those most relevant to 3d printing.