This is exactly what any CSG would do by design. See the illustration - the subtraction removes segments B and D, because they belong to the sink basin. Segment C remains, because it is not a part of the sink basin.
Thanks for the explanation — I see now why CSG removes B and D and leaves C.
In my case though, I don’t actually want the whole basin mesh to be used for subtraction.
What I’m trying to achieve is:
Only cut out the outer rim shape (the sink’s top opening) from the countertop
Ignore the sloped inner basin so that the cut goes all the way through
Basically, I just need a flat “cutout” profile from the sink model, not the full 3D basin.
Possible approaches I’m considering:
Create a separate, simple rectangular ring geometry (matching the sink’s outer rim) and use that for CSG subtraction.
Extract the rim vertices from the sink mesh and generate an extruded shape for subtraction.
Use the sink’s bounding shape projected to the countertop plane as the CSG mesh.
Has anyone tried a clean “rim-only” CSG cut like this before?
i notice your input mesh is called “convex” which is somewhat key. If you take the THREE.ConvexGeometry of the sink, and subtract that from the counter it should be giving you what you want. IF that’s already the case, then maybe drag the 2 models in here and we can take a look.
Instead of using the sink model as the subtraction shape, use a boxgeometry. Then you will have a hole in your table top that you can place a sink into
with a cube.. you would have to determine the extents manually and inset it by some amount. that could work.. but I feel like the convexgeometry is more general purpose and will work with other sink shapes too.