-
Notifications
You must be signed in to change notification settings - Fork 511
forcing NURBS to mesh causes "naked edges" #175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Triage: still an issue after baf9dc0, although I get many fewer problematic edges (different chord tolerance?). |
Triage: per discussion in Evil-Spirit@51616bc#commitcomment-21277921, switching from ear-triangulation to Delaunay will help here. |
@whitequark |
@bazhenovc |
Oh hello there. I can say that this library does the job and the code is of high quality - so yes, I'd recommend it. I'd suggest to extract the needed classes rather then using the whole WM5/GTE - it's quite huge and you'll probably never need the whole package. |
@bazhenovc Thanks for chiming in! @Evil-Spirit This uses the Boost license, so it's compatible. It will remove a massive chunk of code from SolveSpace, if I understand correctly (exactly which?). Seems easy to integrate, though I think using a submodule is preferable to copying files (history is lost, upgrades are painful, etc). |
History will be lost no matter what you'll do - their source code is distributed in zip archives. |
In these cases I normally import releases into git version by version (which is quite easy with a script), so we can still easily bisect, and also easily track/rebase our changes on top of their classes. |
@bazhenovc @whitequark |
Anything else? |
there is CORK, some library for booleans. |
There's this issue with it:
It might still be better than our current booleans, but I'm not sure of a good way to compare them. It also uses LGPL so this creates obvious distribution issues for us, but that's comparatively minor. |
Using current master (dbf5a8d) with default setting this gives me 8 bad edges. Switching it back to NURBS produces zero bad edges even if I increase max_segments to 100 and lower chord tolerance to 0.01 percent. It is always best not to use triangle mesh unless something goes wrong with a NURBS boolean operation. Maybe at the time this issue was opened that was necessary. This is still an issue and a fairly simple test sketch. |
I just revisited this model with commit 61cc28f (late in 3.0 prior to 3.1) and the problem is still there. I noticed that switching to NURBS and then back to triangle mesh often changes the number of bad edges. Anywhere from zero up to 126 but typically about 30. There seem to be some randomness in the boolean operations on triangle meshes. |
SolveSpace at commit d4b052d
The following design produces complaints about 864 naked edges, which makes SolveSpace very unhappy:
https://gitlab.com/anelok/mexp/raw/016367ea70960daac4d8bb94a5740d84a3f5e900/alt13/aaa-minus-weirdly-broken.slvs
I found that turning off NURBS to mesh in g00b-spring makes the naked edges go away.
Before I noticed that I had NURBS to mesh selected, I tried removing the rectangular blocks on the side, the hole, the "dimple", ... none of which helped to get rid of the naked edges.
The text was updated successfully, but these errors were encountered: