Boolean Subtract Implicit Geometry Axolotl Plugin

Boolean Subtract Problem Axolotl Implicit.gh (17.4 KB)

Trying to cut holes in a TPMS Gyroid using pipes but the result is a TPMS that is cut in some places but has pipes connected to it ?

This is a confusing result after using boolean subtract.

I was expecting just a TPMS with few holes from the pipe

I don’t know Axolotl Plugin in detail, but it seems you are using it wrong.

The lattice you are using divide the space in two infinite periodic volumes A and B… but the mesh itself is not a solid per se, but only a “limit surface” from volume A to volume B.

With SDF volume A will have positive values and B negative values.

When you make a solid boolean union/subtraction, you are adding or removing the set of values from your pipes to the lattice, but you can’t generate a “limit surface” with holes.


See it like mixing water with oil. Water is A (positive) and oil is B (negative).
The mesh, the limit surface Axolotl is generating, is the surface where water is in contact with oil.
Can ever exist a an interruption on the limit surface? Can exist a portion of non-contact between water and oil? (aka an hole in the mesh limit surface)
No.

First, generate your mesh, then, after, split and cut your mesh with other tools.

Isopod have a command that lets you use a field to split a mesh.


You can maybe exploit the engine and create a “bubble” of air between water and oil, where all the values would return a NaN value (so not positive and also not negative) … but this is bad practice and will return bad object or break the solver.

2 Likes

Thanks for the reply.

What is the name of the Isopod command you mentioned ? "

My meshes are very very large… hence wanting to do this operation in the distance field.

Can I maybe give my TPMS and pipes each a thickness and then perform the boolean between them ?

Thanks

Absolutely!
Give thickness to the TPMS and subtract the pipes.
(do not give tickness to pipes… or try to better understand how it works)

Currently “A” and “B” volumes are 50/50 of the total.
You can intersect a field of 49/51 with a 51/49 to end up with a field which should be like a “thikened” shell of your original limit surface. And then subtract your pipe fields.

OR

Currently your x values go like:
+3 +5 +7 +5 +3 +1 ||| -1 -3 -5 -7 -5 -3 -1 ||| +1 +3 +5 +7 +5 +3 +1 ||| -1 -3 -5 -7 -5 -3
Applying an operator like x = Abs(x) - 2 would return:
+1 +2 +5 +2 +1 ||| -1 -1 ||| +1 +2 +5 +2 +1 ||| -1 -1 ||| +1 +2 +5 +2 +1 ||| -1 -1 ||| +1 +2 +5 +2 +1

(The “|||” division are from positive to negative, the limit surface.)

You see how the limit surfaces are now twice… now on this field you can properly subtract your pipe fields.

Here’s an example showing a mesh trimmed with another implicit.
Note this isn’t a boolean subtraction, and we are meshing the TPMS implicit to create an explicit mesh before cutting that with the cylinder implicit.
As Riccardo explains above, boolean addition/subtraction of implicit solids will produce new solids but not naked edges. Indeed implicit surfaces never have naked edges. When meshing an infinite surface like a gyroid within a finite region like a cube, you can get a mesh with naked edges, but the true implicit does not have these edges.

You could thicken your TPMS, then subtract the pipes, but consider that creating thin solids will require much higher resolution, resulting in bigger meshes and longer processing times.


field_trim_example.gh (23.7 KB)

1 Like