USER FORUM
(you are viewing a thread; or go back to list of threads)
boolean (by XD2426)
Why in boolean.cpp is the order of while(!inter.l.IsEmpty()) and while(!orig.l.IsEmpty()) such that orig comes before inter?What bad consequences would there be if I switched the order of the two?
(no subject) (by Paul)
Your question would be more appropriate over on github where development happens. But since we are here...
FYI you are looking at perhaps the most complex function in the entire codebase. But that is also the source of many of our remaining boolean bugs, so I applaud anyone making any effort there.
orig.l will almost always have something in it, while inter.l will usually have very few or no entries in it. I would have written it in the order is is too. I don't think anything will happen if you reverse the order of those two loops, but I could be wrong.
What are you up to?
FYI you are looking at perhaps the most complex function in the entire codebase. But that is also the source of many of our remaining boolean bugs, so I applaud anyone making any effort there.
orig.l will almost always have something in it, while inter.l will usually have very few or no entries in it. I would have written it in the order is is too. I don't think anything will happen if you reverse the order of those two loops, but I could be wrong.
What are you up to?
(no subject) (by XD2426)
I'm designing a CAD-CAE integrated system, and I need to change the display mesh from ear-cutting to Delaunay triangles. I found that the tool body sketch is drawn on a certain face of the source geometry and then extruded inward to do a difference.
This creates a special case: an original edge of the tool body happens to coincide exactly with the new intersection line cut out from the source face. When boolean trimming a certain side of the tool body, the current surface's original trim goes into orig first; the intersection line between the source face and the tool face goes into inter. On this shared edge, orig and inter geometries occupy the same position, but come from different sources. However, I noticed that if I swap inter and orig, this problem doesn't appear.
This creates a special case: an original edge of the tool body happens to coincide exactly with the new intersection line cut out from the source face. When boolean trimming a certain side of the tool body, the current surface's original trim goes into orig first; the intersection line between the source face and the tool face goes into inter. On this shared edge, orig and inter geometries occupy the same position, but come from different sources. However, I noticed that if I swap inter and orig, this problem doesn't appear.
(no subject) (by XD2426)
Thanks for your reply, the issue has been resolved.I want to create a conformal mesh.
(no subject) (by Paul)
I'm curious if any of what you're doing would make sense to put in solvespace upstream. What are you adding?
(no subject) (by XD2426)
Replace the original ear-cutting method with Gmsh to generate surface 3D meshes, then reconnect Gmsh during the export step to create 3D meshes. Add MFEM to SolveSpace and use the 3D meshes generated by Gmsh for stress analysis and topology optimization.But this is my graduation project, so it's not really suitable for you to see right now.
(no subject) (by Paul)
That sounds very interesting, I'd like to see it when you're ready. FYI there is a github issue to discuss work like this if you want:
https://github.com/solvespace/solvespace/issues/866
There is also a closed pull request with the FEA label that never got merged for exporting gmsh GEO files.
https://github.com/solvespace/solvespace/issues/866
There is also a closed pull request with the FEA label that never got merged for exporting gmsh GEO files.
Post a reply to this comment: