Objective:
Learn how to create a TPMS by using math equations. This example creates a Schwarz TPMS
Applies to:
 TPMS
 Math
Procedure:
1. Build the equation using math blocks
The equation for the Schwarz TPMS is cos(x)+cos(y)+cos(z). Equations in nTopology are built out by individual blocks. Some equations can quickly become complicated. Due to this, we recommend turning these workflows into Custom Blocks, so you only have to build it once. It is also useful to name each block as the function it is representing.

 Add 3 Cos blocks
 In the first Cos block, write in 'X/1 mm'. This gets rid of the units associated with X and allows it to work with Cos.

 Repeat this for the remaining Cos blocks using Y and Z instead of X.
 Add an Add block
 Insert Cos(X) and Cos(Y) into the Add block

 Add another Add block
 Insert the Add block with Cos(X) + Cos(Y)
 Insert Cos(Z)
 Add another Add block
View the results of your equation. If you just see black, zoom out or use 'Z' to zoom to the object. The TPMS should be quite large.
2. Give your TPMS units
In order to use the TPMS in other operations, it needs units. Add units by multiplying the field by 1 mm.

 Add a Multiply block
 Insert the equation from Step 1 into Operand A
 In Operand B, write 1 mm
 Add a Multiply block
3. Trim your TPMS down to size
Use the Boolean Intersect block to edit the size of the TPMS

 Add a Boolean Intersect block
 Insert the Multiply block from Step 2.
 Insert a body that you want to intersect the TPMS with. In this example, we use a small Cube.
 Add a Boolean Intersect block
And that’s it! You’ve successfully created a TPMS using math blocks.
Are you still having issues? Contact the support team, and we’ll be happy to help!
Comments
Is there a way to use this customcreated tpms like a tpms made by nTopology (i.e. to use "walled tpms" ...)?
Are you asking to create a walled version of your custom TPMS? Or do you want to use your unit cell in those blocks? The best method would be to use the beta lattice blocks with a custom unit cell.
A general Gyroid is represented by, F (x,y,z) =cos(x)∙sin(y) + cos(y)∙sin(z) + cos(z)∙sin(x) + c, and c is function which controls percentage of porosity in a TPMS model.
Is there a method to implement gyroid architecture on a imported solid model, and control its level of porosity using C function.
Is it possible to obtain with this methodology the unit cell of a TPMS? I see that with this method a whole lattice is formed and trimmed down to the desired size, but how can I decide the size of the unit cell itself and obtain just the unit cell? Thank you!
Please sign in to leave a comment.