Printing at CityTech

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

Transcript of Printing at CityTech

Page 1: Printing at CityTech

Printing at CityTechwritten by Patrick Delorey

The City University of New YorkArchitectural Technology Dept.

Page 2: Printing at CityTech

Printing at CityTech

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

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 acheivable 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.

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 vaccuum or forced air and recycled, and the finished part can be carefully extracted.

Consider these processes as you are producing models to be prototyped. Objects modeled as solid shells will be filled with powder (and be heavier, by consequence) if they do not have a means by which to extract unused powder. Very thin portions are fragile and tend to break in the powder removal and extraction process.

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.

Who Can 3d Print?

In order to be eligible for 3d printing, your professor must submit a project request form, your class must receive a 3d printing orientation, you must complete the form in Appendix A of this guide, and your model must be checked by either Brian or Patrick to ensure it will print properly.

2

Page 3: Printing at CityTech

Printing at CityTech3

Fig. 5 - Gap below Rhino’s tolerance (bad geometry)

Fig. 4 - Extruded polyline with capsFig. 3 - Open polyline (below tolerance)

Modeling in Rhino

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

1. All objects in model must have thickness (1/8” min.)2. All objects must be closed with no gaps or holes between joining surfaces.3. All objects must have unified normals.

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. There are commands & operations that you can perform on your model to acheive these conditions, and we’ll cover these operations in greater detail.

Global Settings

Tolerance

When you are modeling at the scale of your building, a tolerance of 1/8” is perfectly acceptable, but when you scale your model to 3D print, this tolerance can become misleading, and cause you to create bad geometry. For a model which you intend to 3D print, go to Tools > Options > Units. Set the absolute tolerance to 0.001 and the display precision to at 1/32” to make verifying the validity of your model easier and more precise. For advanced users, you can set up a template specifically for modeling for rapid prototyping with these parameters (and any others that you choose) pre-set.

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. 3). 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.

Page 4: Printing at CityTech

Printing at CityTech4

Fig. 11 - Dir Command Showing Surface DirectionFig. 10 - Custom backface color setting

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

Fig. 7 - Bad geometry detectedFig. 6 - CheckNewObjects command

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. 4). 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. 5).

To avoid these issues, we can utilize the Rhino command CheckNewObjects (Fig. 6) which will alert us when any new bad geometry is created (Fig. 7). Though as previously mentioned 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). Enabling CheckNewObjects helps avoid problems before they take shape.

Note that CheckNewObjects will remain active between sessions of Rhino, so if you close a file and open another, the feature should remain active.

Backface Color and the Dir Command

As seen previously, one of the requirements 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’. To help illustrate, imagine 6 square pieces of cardboard, black on one side and white on the other, and you are instructed to glue these pieces into a cube with all the outside faces white. 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. 8), 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. 9). 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. 10).

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. 11) 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 5: Printing at CityTech

Printing at CityTech5

Fig. 15 - Be aware of self-intersecting solidsFig. 14 - OffsetSrf with a clean solid

Fig. 13 - Naked edges highlightedFig. 12 - Select objects for which to show edges

Modeling Technique

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

Duplicates

In Rhino, it can be easy to accidentally duplicate geometry without realizing it. This can result in your model appearing closed but being read as open because of the duplicate single surface(s). Use Rhino commands SelSrf, SelPt, SelCrv, & SelDup to delete duplicate geometry.

ShowEdges

Sometimes gaps in geometry will be very, very small (but not below our tolerances, right?) 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. 12). Select geometry in question and hit enter. A dialog box will appear and edges will be highlighted (Fig. 13). 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.

OffsetSrf

The simplest command for thickening surfaces is OffsetSrf with Solid: Yes activated (Fig. 14). There are two points of caution, however, with OffsetSrf. First, if the offset distance is large compared to the tightness of curvature of a surface, the resulting form might be self-intersecting (Fig. 15). 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. The second issue is that surfaces joining the primary offset surfaces are usually non-planar, which isn’t necessarily bad, but just a point of which to be aware.

Page 6: Printing at CityTech

Printing at CityTech6

Fig. 20 - Results of OffsetMesh

Fig. 19 - Options for OffsetMeshFig. 18 - Mesh options

Fig. 17 - Highly complex surface to meshFig. 16 - Comparing OffsetSrf (lt.) & ExtrudeSrf (rt.)

ExtrudeSrf

A similar, but geometrically importantly 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. 16).

OffsetMesh

Occasionally, if NURBS surface geometry is very complex, it can result in sluggish modeling performance (Fig. 17). For these situations, it can be beneficial to convert a developed surface to a mesh using the Mesh command (Fig. 18) and then using OffsetMesh to provide the necessary thickness, making sure that ‘Solidify’ option is checked (Fig. 19). Meshes are less time-consuming to compute, but they come at the expense of difficult editing within Rhino (Fig. 20). If you notice Rhino having difficulty with offseting your geometry or behaving strangely slow, consider this option, but only having developed your geomtery 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, then re-convert it to a mesh and offset again.

Using this family of commands (OffsetSrf, OffsetMesh, ExtrudeSrf) you should be equipped to apply a specific thickness to any surface that you can create in Rhino.

Scaling for Printing & Exporting

Typically, we model at full scale (i.e. the units we input in Rhino are actual units, not scaled values), so the model in Rhino is at “real” size (Fig. 21). Our printer, however, has a maximum build volume of 10”×14”×8” so we’ll need to scale our model accordingly. It can be helpful to model the maximum build volume in Rhino to check that your model doesn’t exceed the maximum size when scaled. It is helpful to position everything near the origin (0,0,0) for these final steps (Fig. 22).

Page 7: Printing at CityTech

Printing at CityTech7

Fig. 26 - Final export optionsFig. 25 - Tolerance for .stl file

Fig. 24 - .stl file formatFig. 23 - File > Export Selected...

Fig. 21 - Model at full scale Fig. 22 - Model scaled to simulated build size

Depending on the units in which you’ve modeled, you may have to adjust your scaling factor to correctly size your model. Make sure that the boundary of the build volume is set to the correct units. Usually, scaling doesn’t introduce errors into your geometry, but if you have modeled a fine level of detail prior to this step, it may scale into unprintable size (anything less than 1/16” of printed material). For this reason, we suggest modeling the significant gestures of your project to communicate design intent as opposed to producing a perfect ‘mini-building.’

Once you have closed all your geometry, checked for gaps, and scaled appropriately, 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. 23), a dialog box will appear. Select the filetype as *.stl (Fig. 24).

Rhino will then ask you what tolerance to use when it converts your NURBS geometry to a polygon mesh (Fig. 25). 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. 26, circled in red). This will prevent exporting unprintable geometry.

CheckMesh

After exporting your .stl, there is one other helpful procedure we can perform to make sure our object will cause the fewest problems when 3d printing. Open your exported .stl file in Rhino, select the mesh object and run CheckMesh. This command produces a more detailed description of a mesh object (similar to the ‘Details...’ button in the obeject 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. Once you’ve found problematic areas, you can use Rhino mesh repair commands to clean up your .stl.

There is a plugin for Rhino called Mesh Repair Wizard (which is built-in to Rhino 5.0, see Appendix B) offering repair as well as diagnostic tools. You can find the plug-in at http://wiki.mcneel.com/labs/meshrepair

Page 8: Printing at CityTech

Printing at CityTech8

FAQs

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 9: Printing at CityTech

Printing at CityTech9

I scaled my model down to 3d printing size, and now all the deails 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 10: Printing at CityTech

Printing at CityTech10

Appendix A - 3d Print Punch List

Before submitting your file to 3d print, please perform the following steps to make sure that your file has the best chance of printing as you intend. Please complete, print this page, and submit it to a CLT when you are prepared to 3d print your file.

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

___________________________email that you check often (to

notify 3d print is ready)

__________________________student name

[ ]

[ ]

[ ]

[ ]

[ ]

Page 11: Printing at CityTech

Printing at CityTech11

Appendix B - 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.

There are a number of other reasons to experiment with Rhino 5, but these are those most relevant to 3d printing. If you have any questions about Rhino 5, feel free to ask a CLT.