Rhino Solid Modeling for 3d printing

From TOI-Pedia


3D print
SLA printing process

For this last workshop we will generate a 3D part of your design which will be 3D printed with the Form 1 SLA printer. Or you can choose to design a sculpture which can be placed in the garden. In the lectures it was discussed that digital data has certain properties which has an influence on how you can generate and adjust form but also how the data can be used for analyses and manufacturing. At this moment Additive Manufacturing ( also known under the incorrect term 3D printing, which is actually only one of the techniques of additive manufacturing)) is an area of manufacturing which is developing very fast. The reason for this is the capability of manufacturing complex object with relative ease and the availability of cheap machines and materials, many of them home build.

The machines have one thing in common that they use a technique called layered manufacturing. That means that the 3D printed object is manufactured layer by layer.

How does this work:

  • A closed polygon object ( which describes a volume and is 'watertight') is imported in the 3D printer software.
  • The user decides how accurate the 3D model will be printed. In the case of the Form 1, the hight of the layer will dictate its accuracy. This can range from 25 to 200 microns.
  • The type of material is selected. The printer supports coloured material and transparent material.
  • If all the settings are correct the 3D model will be sliced. That means that the 3D model will be cut in slices of the thickness defined in the print settings. All these slices will be stacked to form the final 3D model. Hence the name layered manufacturing.

Producing a 3D model suitable for 3D printing

Solid to Mesh

Not any kind of model or geometry can be 3D printed. There are restrictions on what you can print and how the 3D model is defined in the computer.

The most important restrictions are the size of the object and parts of the object.

  • The maximum size of the object is 4 cm3 for this workshop.
  • The minimum thickness of the smallest part is 0,5 mm, less and the part will deform or won't print at all.

The model has to be a closed polygon model. There are two methods of generating a correct file for 3D printing.

  • Export a solid (check that it is a closed polysurface, NURBS surfaces can't be printed!) as an STL file. Select the object you want to print and go to File » Export Selection » Select .STL filetype The computer will ask for the certain settings for the file which are oke as they are. So just press oke, and the file will be exported as a STL file.

Keep in mind this solid object should be one single object. It can't consists of a series of solids which are grouped or joined. It has to be one closed volume.

  • Convert the solid to a mesh and then export (check that it is a closed polysurface, NURBS surfaces can't be printed!) as an STL file. Select the solid and go toMesh » From NURBS Object » Polygon Mesh Options This menu enables you to define the accuracy of the Mesh model. A medium setting often will suffice. Now you have a Polygon model which can be printed. To export this file go to File » Export Selection » Select .STL filetype The computer will ask for the certain settings for the file which are oke as they are. So just press oke, and the file will be exported as a STL file.

The second option is often used to detect if there are any problems with the 3D mesh which makes it unsuitable for printing

3D Solids Checking

Closed Polysurface means the object is a solid
Open Polysurface means it is not a solid

IF you generate 3D objects using one of the methods above, you need to make sure it can be printed if you're doing the week 5 Workshop of BK3OV3. In most cases it suffices to use Surface » Util » Cap Holes or Surface » Util » Cap Holes Ex to close pipes, sweeps and such.

To make sure objects are valid solids, bake the geometry in Grasshopper to Rhino objects and check them in Rhino.

The object Properties Panel shows details for selected objects. If Type is Closed Polysurface, the object is a proper solid. If Type is Open Polysurface, it means there is still a hole in it that needs to be closed

Finding openings in your geometry

To find where your object is still open, you can look for Naked Edges.

Rhino show naked edges.png
Rhino naked edges in a model.png

Select your object and use Analyze » Edge Tools » Show Edges in Rhino to show edge analysis.

Select Naked Edges. Naked edges are highlighted:

Volume and Center of Mass

If you've baked geometry from Grasshopper to Rhino and changed it, you may want to re-check the volume. Use Analyse » Mass Properties » Volume to determine the current volume.

You can use Analyse » Mass Properties » Volume Centroid to check the center of mass. The function creates a Rhino Point at the current center of mass. This can be useful if you want to make a base for your object. As long as the center of mass is above your base, it should be more or less stable.

The task


Make a 3D model suitable for 3D printing.

There are several options available to choose from.

  • Make a solid model of a part of your building taking in account the limitations of the 3D printing process. This option focusses primarily on solid modelling techniques.
  • If you prefer to use grasshopper to make the 3D model for the 3D printer then you can choose to make use of a series of GH files we made for generating a sculpture for your garden through mathematical defined geometry.

In both cases the 3D model should exceed 4 cm3

A part of the building

This option can have several levels of detail. You can focus on a 60 by 60 by 60 cm part of your design which represents in form a clear recognizable part of your building. This model is a key detail of your design.

It can also be on a larger scale of 6 by 6 by 6 meters. In that case you will have a substantial part of your building defined. The model represents an essential part of your building in form and function.

Be aware of the limitations of the 3D printing process as discussed earlier in this text.

The sculpture

For this workshop you will create a 3D model which will be printed in the 3D. We made a series of grasshopper files which can help you to support to make a 3D model of a sculpture. You can select one option for generating your model. There are two main options.

  • the generation of a pattern made from a set of curves. The result is a 2D object which can be made into 3D with the traditional modelling tools like Loft, Sweep1 rail, Extrude and Planar or Curve Network.
  • the generation of a 3D object which is based on a Mobius curve. This option has 3 variants. In this case the 3D form will be generated by the Grasshopper definition. You can select one of these variants.

Sculpture Option 1 - Generation of 2D Tilings as a basis of a 3D Model

Escher E57.jpg

2D tiling of any Quadrilateral

Inspired on work done by MC Escher, we've created a Grasshopper definition that can be used to create any quadrilateral 2D tiling. The definition can also map this to an arbitrary surface.

The definition 2D_quadriliteral_tiling.gh and accompanying Rhino file takes four points in the XY-plane that you should create in Rhino. You can move them around, but you should keep them in the right order, either clockwise or counter-clockwise. Using the sliders you can set the amount of repetitions for the tile that is created. This pattern can then be mapped to an arbitrary surface.

The definition can generate a tiling with straight edges, or use 4 curves that are mirrored on the sides to allow for proper tiling. The curves you specify are automatically scaled, positioned and mirrored on the four edges of the quadrilateral.

The definition 2D patroon_simpel.gh and accompanying Rhino file creates a simple rectangular tiling, which creates a pattern from any set of given curves. These curves can be mapped to a target surface, flat or curved.

You can use various techniques to create 3D geometry from these curves. The definitions are set up to extrude shapes along the curves. You can use these as is, or use them to subtract from a given object, creating grooves/rifles in a surface.

Sculpture Option 2 - Möbius Curve

Mobiuscurevbeeld.jpg In these examples we going to use a Mobius curve as basis for the generation of geometry. With the help of Grasshopper we can use points from that curve as a basis for generating complex shapes. These prepared files can be downloaded at the TOi website. They are setup in such a way that you don't have to add anything to the grasshopper definition. Just use the sliders to explore the large amount of variations you can generate with these definitions.

Make a selection of one of these options and generate a volume which can be printed.

Variant 1

Grasshopper mobiuscurve buis.jpg With option 1 you will generate a tube following the Möbius curve. Please look at the instruction video for further explanation.

Loading the player...

Variant 2

Grasshopper mobiuscurve box.jpg With option 2 you will generate a shape based on a series of boxes which are located at the points of the Möbius curve. If you change the curve the boxes will follow. The boxes can also be rotated to generate additional options in form generation. Each box will be the same size. Please look at the instruction video for further explanation.

Loading the player...

Variant 3

Grasshopper mobiuscurve boxcomplex.jpg With option 3 you will generate a shape based on a series of boxes which are located between the points of the Möbius curve. If you change the curve the boxes will follow. Each box will have a different size. Please look at the instruction video for further explanation.

Loading the player...

Other Curve Craziness

The Möbius curve is only one example of how you can construct curves using math. The ZIP-file with examples (see top of this article) has other Grasshopper Definitions that you can use to generate curves using formula.

  • create_curve_by_math_function_and_various_snippets.gh: Basic setup to construct a curve using a formula for X, Y and Z positions. Also features snippets to place planes, re-orient planes, use random values, rotate objects around an axis.
  • curves_connect_pipe_using_parameter_values_and_graph_mapper: Two curves that are divided. Both sets of points are connected using curves. Along these curves a pipe is constructed. The snippet features a Graph Mapper that is used to change the pipe diameter based on the position on the curve.
  • Fibonacci.gh: Fibonacci formula
  • helix_with_distortions.gh: formula to create a helix. Also features an option to distort this helix using random values.
  • sweep_along_curve.gh: How to sweep (extrude) a profile curve along a set of rail curves.

From Curves to 3D Objects

When you have one or more curves, there are several ways you could generate 3D objects from these curves.

Of course you have the obvious ones, such as loft, extrude, planar and edge curve surface. But there are more options that may be worth while exploring:

Extruding a profile along a curve

Sweep a profile along a curve covers how you can sweep (or extrude) an arbitrary curve along curves.

Using points on several curves to generate solids

These scenarios assume you have (at least) two separate curves with an equal amount of points on each of them.

Using curves

Connect the points on both curves using a line, arc or curve. Use these curves to create a Pipe, or Sweep (see above).

Example of creating pipes with variable diameter based on the curve parameter and a graph mapping function

This example shows how to connect points on two curves, using them to create pipes. But of course you could also use Sweep to create other shapes (See: Sweep a profile along a curve). This sexample uses the Parameter value of the points on the curve to generate a value for the pipe radius, using a Graph Mapper. The Domain is used to translate the range of output values from Graph Mapper (0-1) to a configurable minimum and maximum, using Remap Numbers.

Using Planes

Example of constructing Cones on planes that are placed on one curve, oriented to the corresponding point on another curve

Create a Vector » Vector » Vector 2Pt between two sets of points on either curve. Use the points on one curve to create Vector » Plane » Plane Normal planes together with the vectors you've created. Use the Vector » Vector » Vector Length component to find the distance between both points, if you need that to determine the size of the object you're creating. Use any of the Surface » Primitive components that create primitives based on planes.

If you've used the Curve » Division » Divide Curve component to create the points on curve, you also have the direction of the curve in each point availaable in the Tangents output. you can use that to orient the plane or object in a direction that follows either curve.

You may also find the Parameter (t) output useful. It contains the relative position of the point on the curve. If you Reparameterize the input Curve (RMB-click on the Curve input of Divide Curve), it's a number between 0 and 1. You can use that in a formula to, for instance, change the size of the objects you're creating.

Personal tools