Hi,
for demonstration purposes, I have an extremely stripped down version (1200 LOC) of my plugin (6000 LOC) here.
Unfortunately it was not possible to insert the whole Pyp file here because the post can only be a maximum of 32767 characters long. That's why I only have sent the classes and functions that are not so important are without code.
- Condition: the window bars must be activated. Error with Boole happens in the method
def bar_cutter(op, obj, bars, fixed=False)
Description:
Of course, it is not technically perfect and in this version it is more of a prototype. I was able to narrow down the error to the Bars_Cutter() function. That's why I only included the bar_cutter method.
- In this function I read specific points from the created frame and create a spline, which I throw into an Extrude and then convert to a polygon object. this extrude is used to cut the window bars.
- I then create a Boole object and throw the previously created bars together with the extrude into the Boole object.
Normally I also create a polygon object from the Boole object with SendModelingCommand() but to prove that the error comes from the Boole, I insert the Boole object directly under the window frames.
Problem:
The problem now is this. If you reduce the arch height of this arched window, the polygons will now intersect. The following usually happens (R23-2023). The bars then simply disappear. And the glass is no longer displayed correctly either. That's actually OK. The user immediately knows that something is intersected. (Watch Video)
And in version 23-2023.2 this works, as can be seen in the video.
But in version 2024 when the polygons intersect, Cinema 4d freezes.
I have a short video to watch here.