# Thicken a Mesh with Grasshopper

## Weaverbird

**Weaverbird** (developed by Giulio Piacentino) is a **topological mesh editing tool** for **Grasshopper**. It is an essential tool for working with Meshes in Rhino and Grasshopper.&#x20;

Learn more about Weaverbird components on [Grasshopper Learn](https://rhino.github.io/addons/weaverbird.html).

{% hint style="info" %}
**Weaverbird**  is available for download [on the author's website](http://www.giuliopiacentino.com/weaverbird/).
{% endhint %}

### Mesh Thicken

[Mesh Thicken](https://rhino.github.io/components/weaverbird/meshThicken.html) or `wbThicken` is a Weaverbird component which **offsets** a mesh to give it a **'thickness'**. Mesh Thicken uses an algorithm to **offset the individual vertices** of a mesh and construct new faces.

This component can be used to convert an open mesh to a closed mesh **in certain circumstances**.

![Figure 0.1 - wbThicken Component](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-Lar2ldOmccf7rwaWAZC%2F-LamJ4Jodpk5EGaSC2sI%2Fdefinition2.png?alt=media\&token=b5654775-6290-4026-ab7b-63dbc94d1fb4)

## Use Case

This definition can be used to **give a thickness to an open mesh**. This definition can also be used to **add thickness to a closed mesh**. This definition **does not** work well when a contains **non-manifold edges** or **intersecting faces**. The \[Check] command can be used to verify that this is the case.

![Figure 1.0 - Shell with all backfaces visible.](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-Lar2ldOmccf7rwaWAZC%2F-LamJ4JmGI0nTxgMddXW%2Fgeo.png?alt=media\&token=768b7beb-7996-411b-be77-31c9525f5e79)

## Definition

* This definition first references the mesh using the `Mesh` component.&#x20;
* The `wbThicken` component is used to offset the **mesh normals** to a distance, `[D]`.&#x20;
  * A `panel` is used to specify the distance as `-2`. \
    A **Positive offset distance** will result in a **larger mesh** that has been offset **outward**. A **negative offset distance** offsets **inward**.
  * **2 mm** is chosen as the offset distance as this is the **minimum thickness recommended for 3D Printing**.
  * **Offset Type** is specified here as a local value. [Learn more about offset types](https://rhino.github.io/components/weaverbird/meshThicken.html).
* The `wbLoop` is a **subdivision** component which refines or smooths a mesh.
* The **other components** in this definition are used to **bake** the **output mesh** with **custom colours** and **names**.

![Figure 2.0 - Basic wbThicken Definition](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-Lar2ldOmccf7rwaWAZC%2F-LamJ4JnpVr0kreI2TKy%2Fdefinition.png?alt=media\&token=c425e272-372c-431d-9c57-facd3bb14822)

## Output Geometry

The geometry should be output as a `"Closed Mesh"` in order for the object to be printable.

![Figure 3.0 - Output Geometry](https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-LarD90qNVqlrk7-MS1K%2F-LarEGYPBhjSytKSF5P2%2Foutput.png?alt=media\&token=9523eed8-b8b1-461d-ae94-9ab2ddb40cc2)

## Definition

The above grasshopper definition can be downloaded here:

{% file src="<https://1820679795-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXautSvCbUco5Lv7YrH%2F-LarD90qNVqlrk7-MS1K%2F-LarEY076QhngeLnKVfG%2FThickenMesh.gh?alt=media&token=2876cbe1-d29a-4a41-9b80-aa3028da06ab>" %}
ThickenMesh (Requires Weaverbird for Grasshopper)
{% endfile %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ms-kb.msd.unimelb.edu.au/next-lab/3d-printing/key-techniques/mesh-techniques/other-techniques/thicken-a-mesh-using-weaverbird-and-grasshopper.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
