[OpenSCAD] Discuss manifoldness, co-incident faces edges etc
doug at moens.org
Fri Nov 15 19:34:27 EST 2019
[How Curv treats properties that vary over space.]
Okay, I missed the original problem description, which was bending a rod around a cylinder through an angle > 180°, so that the ends of the rod self intersect. What happens if the rod is not uniformly coloured?
So I don't actually know a solution to this that I like.
Carsten said "You will have to apply the proper colour model (additive or subtractive)". In other words, some sort of order-independent colour mixing. That seems like the obvious solution to me as well. I don't particularly like it, because in most cases I don't like the visual results of colour mixing. The results are probably useless to me, so I just need to override the colours anyway to make the result look good. If the rods are cylindrical, then it might not matter (the colour mixing won't apply to the surface of the shape, only to the interior. But if the rod has a square cross section, and the square faces of the two rod ends are perfectly aligned in the self intersecting region after the bend, then you will also see the colour mixing on the surface.
Nophead said to partition the self overlapping object into separate sections. Now you have a basis for specifying that one section overrides the colours of the other section. The problem with this, as Carsten said, is the complexity of specifying this. It's nice to just have a generic "bend" operator that doesn't require you to specify extra parameters to specify the override priority of different regions of the shape you are about to bend, in case there is a self intersection.
Carsten said "self-intersection is a sign something has gone wrong". The fact that there isn't a really satisfying solution to the bend problem might seem to validate that stance.
But, I've defined several bend operators in Curv, and I find them very useful. As currently implemented, they aren't fully general, because they don't support self intersection. Because self intersection is hard to implement. It would be better if I could remove this limitation, it would provide a better user experience.
There are CAD programs that support a bend command, but I haven't used any of them, so I don't know if self intersection is supported or how it is handled. Eg, I found this with google: https://knowledge.autodesk.com/support/inventor-products/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Inventor-Help/files/GUID-98FDE447-C0A7-4694-ABD3-BA19A329DDF6-htm.html
More information about the Discuss