Possible bug with extruding multiple nested closed contours

Just in from the course my colleague is leading…

In the file below, there are 4 (co)planar groups of curves that represent facades. They were just experimenting with extruding them into 3D, and noticed a small anomaly - and I can’t explain it either now that i have checked.

If you extrude each facade group individually, no problem. However if you extrude them all at once or even in groups of 2 or 3, some of the windows (always the same ones) get filled in with an additional unwanted extrusion. I cannot figure out why though, everything looks OK. Projecting to the CPlane does not help, but Explode/Join on everything does fix the issue. From that I infer that there is a problem with certain rectangles, but I still can’t explain why the extrusion works normally when only one facade is selected and not when several are selected… So I’m posting it here as a possible bug… maybe someone can find some other reason why this happens that I missed.

ExtrudeFacades2.3dm (62.8 KB)

Tested in V7 and WIP.

Chceking, thanks… my W.A. guess of the moment is the planes are slightly out of parallel…

Nope… looks wrong to me, thanks, I’ll get it on the heap.
RH-68469 Extra extrusions


Changing the tolerance to a more loose one, or projecting all curves to a plane, then extrude them, seem to fix it.
I think Pascal’s first impression of some rectangles are not coplanar within tolerance is perhaps what’s going on here. Are you seeing differently?

Yes, ProjectToCPlane should have taken care of it then, but it didn’t. Therefore I assumed that was not the real problem.

It did not fix it here, either - ProjectToCPlane, that is.


I actually created a plane and projected to it. Let me reopen the doc in case I changed some tolerances here.

This is what I see (even with Loose=Yes)

Yes, but Projecting to a planar surface is not at all the same thing as using ProjectToCPlane or using SetPt with Z=0. It is using a different method.

The result of ProjectToCPlane or SetPt retains the original curve ID’s whereas Project to a planar surface changes them - so as far as I can tell, the curves are being remade from scratch using Project - and something in that process fixes the problem.

ProjectToCPlane and SetPt simply modify the control point Z coordinates of the existing curves, but the basic structure remains and thus the problem is still there…

This is not a (co)planarity problem IMO. The other proof of this is if you Explode/re Join all, the problem goes away as well, even without trying to project to a plane. That operation also remakes the curves. Therefore it is the reconstruction of the curves that fixes the problem…

1 Like