I have a set of thousands of vectors/lines that will be turned into angled extrusions (pipes/tubes), and I need to subtract them from a single solid. Standard Brep/mesh booleans quickly become unstable, i.e. freezes, crashes, invalid meshes, inconsistent results.
Would a voxel or SDF-based approachlike IsoPod and Dendro be a workable solution here? with a result similar as standard boolean differences operiations.
Any tips if this is the way to go (or alternative methods) or sample files to demo this kind of SDF workflow (even with just a handful of cutters) would be greatly appreciated!
If you’re comfortable with scripting in C# it should not be too difficult.
You’ll need to define a field (there are some C# examples in the Isopod thread, most Isopod functions can be double clicked and reveal the C# code). This is nothing more than a function, which defines a value for a given point in 3d space. A field value for your line / vector lattice might be determined by the following algorithm.
Find the closest line to the given 3d-point, and take the distance
Subtract 1, or whatever you’d like the radius of the tubes to be.
Limit the result to the interval [-1, 1]
Now you have a tube-network with field values < 0 inside the tubes, and > 0 outside.
To subtract this from say a brep, figure out if the point is inside or outside the brep - inside the brep use the field-value of the tube network, outside of the brep use -1.
Thanks for pointing me in this direction!
I’ve been following the IsoPod thread since the beginning. it’s amazing work Daniel and others are demo-ing there.
I’m not experienced with C#, but your instructions/steps are clear.
I’ll try “vibe-coding” it and dig into the example code inside the IsoPod components. Hopefully there’s enough inline documentation for ChatGPT/Gemini to help me along.