Guide to Rib Design

Summary:

This article demonstrates the three new methods of rib mapping. Each method has pros and cons based on the intended design and starting geometry, so we recommend reviewing all possible methods. The last section shows how to combine rib mapping with field-driven design. Each method has an example file at the end of the section.

Common use-cases:

We define ribs as a pattern of 3D thin-walled structures that add support and rigidity to parts. Ribs are often applied to thin-walled components such as housings, panels, manifolds, piping, and more.

Glossary:

  • Lattice: A lattice is a 3D structure with thickness made from a pattern of material and air.
  • Graph: A line-based pattern representing rib centerlines. In nTop, graphs store connectivity information between a network of line segments and are also used for lattices.
  • Rib: Ribs are a pattern of 3D thin-walled shapes of a specified thickness in a specified direction on the contour of an existing part.

Methods:

Graph Projection Mapping

  • Best used when the shape of the surfaces can be approximated by simple guide shapes. These guide shapes include planes, cylinders, and tubes.
  • Compatible with periodic rib patterns such as rectangular, triangular, and hexagonal. Custom patterns can also be created by defining a 2D unit cell.
  • Example parts: panels, housings, chassis, etc.
Examples of using the Graph Projection Mapping method.

Graph Projection mapping is a method of creating ribbing patterns that approximate a target shape using a simple guide shape. For the initial release, these guide shapes are Planes, Cylinders, and Tubes (Swept cylinders). This technique should be used when mapping across many CAD faces or small surface details and when the target shape resembles one of the guide shapes. Multiple projection mapping steps can be performed if there are multiple regions of a part. Additionally, it should be used when periodic patterns are desired.

Graph by Planar Projection

1. Start by creating an implicit body. This body will act as the target for projection mapping; the rib pattern will be projected to this body. In this case, it’s a CAD face converted to an implicit body, but CAD geometry is unnecessary for this workflow.

An implicit body

2. Due to the shape of this part, Planar mapping results in a pattern with minimal distortion. Create a plane positioned with its normal facing the part and select a unit cell using the 2D Unit Cell (BETA) block. Use the Graph by Planar Projection (BETA) block to project the pattern to the surface with the desired rib centerline spacing. This block will project from the plane to the first intersection point along the plane’s normal direction. The Tolerance input controls how beams are subdivided to capture surface detail and boundaries.

The implicit body with a plane above it. The implicit body has an isogrid graph applied to it using the Graph by Planar Projection block.

3. Due to the direction we will be extruding the ribs, we want to prevent gaps from appearing between the ribs and the side walls of the part. To accomplish this, we can use the Extend Open Lattice Beams  block to modify the graph. Once done, extract the Lattice -> Thick Graph -> Graph property and use this as the graph for the remaining steps.

A Lattice from Graph block inside the Extend Open Lattice Beams block. The graph property chip is extracted from the properties panel of the Extend Open Lattice Beams block.

4. Use this graph in the Ribs from Graph (BETA) block to create solid ribs. To define a custom direction of extrusion (instead of just using the normal of the target, which is often acceptable), we will use another CAD face (“Back Face” in this example). This is because it is larger and smoother and will have consistent normals around the boundary of the projected Graph. Create a vector field from its gradient, which will become the extrusion direction. At this point, we can also specify the ribs' Thickness, Height, and Draft angle.

The implicit body with ribs. The ribs were generated from the Ribs from Graph block.

5. Perform a Boolean Union to join the ribs to the base part geometry (in this case, converted from a CAD body to an Implicit Body). At this stage, a Blend Radius at the base of the ribs can be applied.

A boolean union block is used to combine the implicit body with the ribs.

Graph by Cylindrical Projection

1. In this example, the projection target is an implicit body with no CAD conversions created entirely in nTop. Start by defining a Frame using the Plane from Normal block. This will position an axis (corresponding with the Z axis of the Frame/Plane) to define cylindrical projection.

A cylindrical implicit body with a plane at the bottom.

2. The Graph by Cylindrical Projection (BETA) block will project the pattern from infinitely far away toward the central axis and stop at the first point of intersection. If the pattern needs to be on the inside of the part, toggle the “reverse” input, and the pattern will be projected away from the axis.

Using the Graph by Cylindrical Projection block generates a graph on the outside face of the implicit body.

3. To create the solid ribs, follow the same steps as the Planar example. In this case, a height ramp was created to decrease the height of the ribs from the ends of the body.

The exterior graph is converted into ribs by extruding them from the surface. The ribs and implicit are combined into a single body using the Boolean Union block.

Graph by Swept Projection

Swept Projection is similar to Cylinder mapping. However, instead of a central axis, a centerline defines the projection mapping.

1. Like the Planar example, the projection target is defined by converting CAD faces into an implicit body. In this case, the Get Cad Faces by Color block was filtered down to the red faces.

An imported CAD body. The body is a curvy tunnel shape.

2. Define a centerline for projection mapping. This single curve centerline can either be imported or created directly in nTop. In this example, it was made in nTop.

A curve is generated as the Centerline of the tunnel shape. The curve follows the curvature of the tunnel shape.

3. Use the Graph by Swept Projection (BETA) block to project the pattern to the target. The projection logic is otherwise the same as Graph by Cylindrical Projection (BETA) block.

A graph is created on the outside of the tunnel implicit body using the Graph by Swept Projection block.

4. From here, the steps for creating solid ribs are the same as previous methods.

The graph is extruded using the Ribs from Graph block. The final body is created by combining the tunnel implicit body and the ribs.

Example File:

Back to top

Conformal Graph Mapping

  • Best used when the surface is complex with branching or highly organic curvature
  • Compatible with two rib patterns:
    • Quad Mesh: Periodic layouts of unit cells with rotational symmetry
    • Stochastic (Voronoi): A random rib layout that supports field-driven cell sizing
  • Example parts: manifolds, piping, designs from topology optimization
  • Note: this method uses lattice blocks
An example created using the Conformal Graph Mapping method.

Projection mapping works for many types of parts, but not every part. Parts with complex curvature or branching geometry benefit from a more adaptive, organic approach. The tradeoff with this is that it is not always possible to align unit cells, so using a unit cell with rotational symmetry (such as “Rectangular”) is suggested. To accomplish this, a Quad Mesh is created on the part, and then a Graph is generated on the mesh.

Quad Mesh

1. Create a mesh of the region where the ribs should be located. In this case, a mesh generated from CAD faces was used, but an alternate approach would be to mesh the whole part and use Filter Mesh by Flood Fill block if no CAD faces are available.

An imported CAD Body that has been converted to a mesh. The CAD body was also converted to an implicit body, but it is not visible.

2. Use the Quadrangulate Mesh block to generate a quad mesh.

The triangular mesh is then converted to a quad mesh using the Quadrangulate Mesh block.

3. Select a 2D unit cell and use Graph on Quad Mesh (BETA) block to create the rib pattern.

A graph is generated on the mesh using the Graph on Quad Mesh block.

4. Finalize the ribs using Ribs from Graph (BETA) and implicit boolean blocks. Even though the graph on the quad mesh may deviate from the implicit body, the Ribs from Graph (BETA) block will conform the centerlines to the part.

Ribs are created from the graph using the Ribs from Graph block. The Ribs are then combined with the original body using a Boolean Union block.

Voronoi Surface Graph

An alternative to Quad Mesh mapping is the Voronoi Surface Graph block. This approach allows field-driven spacing, though the layout will be stochastic, not periodic.

An example of voronoi ribs on an implicit body. The ribs were generated from the Ribs from Graph block. The graph was generated from the Voronoi Surface Graph block.

Example File:

Back to top

CAD Face Mapping

  • Best used when the layout is isolated to a single CAD face.
  • Compatible with periodic rib patterns such as rectangular, triangular, and hexagonal. Custom patterns can also be created by defining a custom 2D unit cell.
An example of ribs generated using the CAD Face Mapping method.

In some circumstances, the layout of the ribs can be fully defined by a single CAD face. In this scenario, use the Graph on CAD Face (BETA) block to generate the rib pattern.

An implicit body with applied ribs. The ribs were generated from the Ribs from Graph block. The graph was generated from the Graph on CAD Face block.

Example File:

Back to top

Field Driven Rib Geometry

  • Recommend method for optimizing your rib designs
  • Compatible with all three rib mapping methods above
  • Note: Rib geometry can be created with constant or spatially varying parameters.
  • Parameters that can be driven with fields:
    • Rib height
    • Rib thickness
    • Rib orientation (extrusion direction)
    • Draft angle
  • Examples of fields include:
    • Distance from features
    • Simulation data
    • Build compensation data
An example of an implicit body with applied ribs, generated using the Field Driven Rib Geometry method.

This section will demonstrate how to use simulation data to specify the height of ribs.

Simulation Driven Ribs

1. In this example, a rib pattern is projected following the same steps as in the previous section, "Graph by Swept Projection."

An implicit body with a graph applied using the Graph by Swept Projection block.

2. Rib geometry can be Field-Driven. In this example, we will run a Static Analysis to generate the field. Torsion is applied using displacement and point restraints. In the following steps, we will use the mid-principal strain field.

An FE Model with applied simulation results from running a Static Analysis.

3. To find the maximum and minimum values, evaluate the absolute value of the mid principal strain field at the vertices of the surface mesh. These vertices can be found in the properties of the FE Volume Mesh from CAD block. Then, calculate the max and min values using Max and Min blocks.

The FE Mesh of the FE Model from the simulation. The properties panel of the FE Mesh is open and the vertices property is highlighted. The strain values from the simulation are inserted into an Evaluate Field block along with the vertices. Then Min and Max blocks are used to determine the minimum and maximum values of the Evaluate Field block.

4. As shown in the image below, use a Ramp block to create a height ramp from the strain field. This will map the minimum value to the minimum height and the maximum value to the maximum height.

A Ramp block is used to modify the original strain field.

5. Simulation fields can tend to be a bit noisy, so it’s helpful to smoothen the field to create smooth ribs.

A Smoothen Field block is applied to the Ramp block to smoothen the resulting field.

6. Use this field in the Height input of the Ribs from Graph (BETA) block. The rib height will now vary with the simulation data.

Ribs are created using the Ribs from Graph block. The Rib height is generated using the ramped strain field, which results in variable height ribs depending on the simulation results.

Designing Ribs with Manufacturability Constraints

This section will show how to create a custom extrusion direction, add a draft to the ribs, and add blend radii to the ribs' intersections.

1. Start by creating a graph and, in this case, using planar projection.

An implicit body with an applied graph, the graph was generated using Graph by Planar Projection.

2. We want to create a height ramp that tapers off toward the perimeter. To do this, use Section Body and extract the Polygon -> Body property. This will provide a distance field to the boundary.

The image shows the implicit body field with the generated graph. To generate the visualized field, a Section Body block was used on the implicit body. Then extract the Body property chip from the Section Body properties panel. This property is located under the Polygon section of the property panel. This will provide a distance field to the boundary.

3. Use a Ramp block to turn this distance field into a height ramp.

The distance field of the implicit body perimeter is inserted into a Ramp block. The field is modified to define the height of the ribs that will be generated.

4. Insert this Ramp into the Height input of a Ribs from Graph (BETA) block to create variable height ribs.

The Ribs from Graph block generating ribs. The rib height uses the ramped scalar field to ensure the ribs taper off towards the perimeter of the implicit body.

5. The Draft angle input will add a draft from the base of the ribs to the tops. Additionally, the Direction input can override the default extrusion direction (normal to the Body), ensuring a constant extrusion in the Z direction.

An image highlighting the Draft Angle input of the Ribs from Graph block.

6. Use the Blend Intersections (BETA) block to add blends where ribs intersect. This will create a bulge on the top and bottom, which must be trimmed off.

A Blend Intersections block is added to create fillets between the rib beams and vertices.

7. Offset the body using the same height ramp used for the ribs.

The starting implicit body with an Offset Body block applied. The Offset distance is the same field used to generate the rib height.

8. Intersect this trimming tool with the ribs to create ribs with flat tops at the specified height. Then, a union with the desired base geometry is performed.

A boolean intersect is applied between the original implicit with ribs and the new offset body.

Example File:

Back to top

More on this topic:

Was this article helpful?