Can someone tell me the difference between using MeshBooleanDifference and using BooleanDifference and then meshing the result ?
When I’m doing MeshBooleanDifference it works perfectly fine while I had BooleanDifference problems using the second method (BooleanDifference failed and I had to perform lateral slight translations) … What is Rhino really doing with MeshBooleanDifference ?
Also, my goal would be to use MeshBooleanDifference in a Python script, but it seems that rs.MeshBooleanDifference(input0, input1) needs input0 and input1 to be meshes (http://developer.rhino3d.com/api/RhinoScriptSyntax/win/#mesh) while in the GUI it seems to accept meshes, surfaces and polysurfaces. Any trick ?
The geometry is not actually the problem, but I hope it can help you understand my problem. Right now the facts are the following:
when I perform BooleanDifference (on polysurfaces) I got a fail --> I assume it is linked to the Known Limitations section of https://wiki.mcneel.com/rhino/booleanfaq --> FACT : I have to perform slight displacements as advised (for a very precise value that I still don’t know where it comes from, but that’s a different story). Then I simply mesh the boolean result
when I perform MeshBooleanDifference in GUI (on polysurfaces) it works perfectly fine without the need of slight displacements (and it meshes according to the DocumentProperties > Mesh parameters) (I also assume that when I use MeshBooleanDifference on polysurfaces, Rhino pre-mesh the polysurfaces then perform the MeshBooleanDifference that we have on PythonScript)
when I perform MeshBooleanDifference in PythonScript (on meshes created from polysurfaces) it works perfectly fine without the need of slight displacements
So my questions are:
why is the BooleanDifference on polysurfaces way more constraining than the MeshBooleanDifference ?
Am i loosing information on my meshed geometry if I use MeshBooleanDifference (basically Mesh then boolean) instead of BooleanDifference then Mesh ?
There will be differences between the two outputs. But, since your end result is a mesh, the differences may be inconsequential. You will need to determine that, based on where the mesh is going.