Hello,
I have been progressing my Python skills over the past month or so since I received some help in the early days. I have found that by combining the wealth of information available in the forum with appropriate head scratching, many apparent road blocks have been cleared through knowledge growth.
However, I have been struggling with a Boolean Difference problem for a few days, and I now think that it might be a BD bug.
I found https://discourse.mcneel.com/t/booleandifference-fail/163125/2 which appears to relate to similar circumstances, but perhaps not identical. I notice in YT that there is no resolution yet.
In my case, I have internal walls with 3 components - Frame, Brace and Lining. The wall components were created as extrusions by Python code. As a clean up step, I have Python code to use BD to remove portions of the Lining which overlap Frame and Brace objects.
Whether using the Rhino command line or Python code, BD allows a portion of the Lining to be removed by either Frame or Brace, but not by both. Trying both together fails. Trying either Frame or Brace first works, but then the second fails.
I suspect that it might be due to the fact that Frame and Brace objects have adjacent faces. By changing the width of all Frame objects so that there is separation between them and the parallel Brace objects, BD works when both Frame and Brace are specified together, and also when each is applied separately. This is true for both Rhino command line and Python.
I have attached a sample model with the code.
The first Py3 node establishes some variables.
The second Py3 node is the main logic. It references MyFunct.py, which requires registration in the code. I have commented out the second BD code block, which should not be required, given that both Frame and Brace should be OK as subtraction objects in the first code block. The second code block can be activated for testing.
I have stripped out the code which creates the wall objects, so after each BD test, the model requires an undo to reinstate the wall objects.
Regards, Garry.
AddObjects BoolDiff.3dm (6.0 MB)
AddObjects BoolDiff.gh (11.1 KB)
MyFunct.py (3.6 KB)








