USER FORUM
(you are viewing a thread; or go back to list of threads)
Broken solid, everything red, can't understand where the problem is (by Forse)
Please see the attached file.
I'm new to Solve Space (and to CAD) and I can't understand what I'm doing that is breaking the solid's surfaces and making solve space show everything in red.
This happened when I did a very small change to g005-sketch-in-plane that does not even touch the broken solid.
Thank you for your help. =)
I'm new to Solve Space (and to CAD) and I can't understand what I'm doing that is breaking the solid's surfaces and making solve space show everything in red.
This happened when I did a very small change to g005-sketch-in-plane that does not even touch the broken solid.
Thank you for your help. =)
(no subject) (by Maxmans)
Hi, maybe: g008-extrude -> force nurbs surfaces to triangle mesh
(no subject) (by Paul)
In group g005 you have an arc and a line segment that come to a sharp point. They are parallel/tangent at that point. There is a known bug/problem when that is extruded and that point form a line across a face. There are 3 surfaces all tangent along that line and Solvespace gets confused.
One solution is to extend the top of g005 upward into the existing solid by making a vertical line at that sharp point and then going across and down. When g006 is extruded we no longer have 3 surfaces tangent along the line and it works fine. See the attached file.
FYI Technical stuff: The reason this happens is deep in the NURBS boolean code. Solvespace decides what to do with all edges and faces for booleans, and the 3 faces being tangent along the edge causes improper keeping/discarding of the edge and faces. The code assumes the 3 surfaces are coplanar when deciding to keep or discard them. The surfaces are classified as being coincident with their normals either facing the same or opposite direction, and it goes from there. The solution is to add code to the algorithm so it also uses the curvature of the surfaces. This will allow it to see the curved surface as being either inside or outside of the other solid rather than coincident with it. Fixing this has been on my personal TODO list for some time.
One solution is to extend the top of g005 upward into the existing solid by making a vertical line at that sharp point and then going across and down. When g006 is extruded we no longer have 3 surfaces tangent along the line and it works fine. See the attached file.
FYI Technical stuff: The reason this happens is deep in the NURBS boolean code. Solvespace decides what to do with all edges and faces for booleans, and the 3 faces being tangent along the edge causes improper keeping/discarding of the edge and faces. The code assumes the 3 surfaces are coplanar when deciding to keep or discard them. The surfaces are classified as being coincident with their normals either facing the same or opposite direction, and it goes from there. The solution is to add code to the algorithm so it also uses the curvature of the surfaces. This will allow it to see the curved surface as being either inside or outside of the other solid rather than coincident with it. Fixing this has been on my personal TODO list for some time.
(no subject) (by Forse)
Thanks for the thorough response, much appreciated!
I experimented a bit on my own and I think I understand the problem now.
I haven't touched C in a long time, but if I can offload something from you so that you have more brain space to attack the NURBS code, let me know.
I experimented a bit on my own and I think I understand the problem now.
I haven't touched C in a long time, but if I can offload something from you so that you have more brain space to attack the NURBS code, let me know.
(no subject) (by Paul)
There is a simple sketch to play with this issue here:
https://github.com/solvespace/solvespace/issues/1291
You can see how changing the corner cut group causes a NURBS failure when the curve becomes tangent to the flat face. Unfortunately people often WANT to make surfaces meet like that ;-) This is something like 30 percent of NURBS failures.
https://github.com/solvespace/solvespace/issues/1291
You can see how changing the corner cut group causes a NURBS failure when the curve becomes tangent to the flat face. Unfortunately people often WANT to make surfaces meet like that ;-) This is something like 30 percent of NURBS failures.
Post a reply to this comment: