You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The boolean intersection is not working correctly.
A script to reproduce the bug is reported herein.
red_body.intersect(green_body) -> Exception: Operation of type 'intersect' failed: bodies do not intersect.
green_body.intersect(red_body) -> works fine
The implementation of intersect has been changed from using the Space Claim core APIs to commands. The reason is that intersect (as well as merge/unite and subtract) using Core APIs only work for bodies in the same part. The current implementation was trying to overcome this limitation by making copies but it has issues with leaving bodies behind and with transformations. For this reason we decided to switch to using commands. If you use Discovery/SC, the implementation we exposed is what you get from the Combine tool from the Design Tab. This behaviorof Intersect is a little different in the sense for your case it gives you the cylinder (which is actually renamed solid, because it is no longer the existing cylinder) and also the hollow box. The boolean operation from CoreAPIs was only leaving the cylinder. As you noted, there is another difference. In the Core APIs, box intersect cylinder and cylinder intersect box both give you the same result. With the command, the second doesn't work. It does work however, if you make the cylinder stick up a little bit. In other words, the case where you try to intersect with a body completely inside another one requires the intersect to be done from the "containing" body. If you feel that there has been a loss of functionality that is preventing you from doing what you want, please contact me. Before we make any change though, we have to gather all the requirements and expectations. I hope that the explanation helped!
IMO - the previous boolean operations and the new way they are implemented might require a revisit... I think we should keep them completely independent and leave the command-based implementation inside the geometry commands module. This will allow users to benefit from the implementation that they prefer.
🔍 Before submitting the issue
🐞 Description of the bug
The boolean intersection is not working correctly.
A script to reproduce the bug is reported herein.
red_body.intersect(green_body) -> Exception: Operation of type 'intersect' failed: bodies do not intersect.
green_body.intersect(red_body) -> works fine
📝 Steps to reproduce
💻 Which operating system are you using?
Windows
📀 Which ANSYS version are you using?
25r2
🐍 Which Python version are you using?
3.12
📦 Installed packages
The text was updated successfully, but these errors were encountered: