SolveSpace Logo SOLVESPACE -- parametric 2d/3d CAD

(you are viewing a thread; or go back to list of threads)

Any roadmap? (by thomas)

Me again, just wondering what the scope on the geometry kernel nurbs stuff is approax?

I've read that this is kind tricky and very complex and it seems to often happen when line segments partially overlap the inner and outer of lines of two features at the same time because its not a true circle? I at least get this often with rounded features that create very tiny gaps (with overlaps again because circles are made of segments).

I mean are you working on these larger groups that cause specific problems in the nurbs surface or is this some kind of dead end of how it was written in the first place?

This is still the most fluent cad I ever came across and intend to use it further but I can also see that my projects got smaller and less frequent as they are often geometry nurbs problems sooner or later that maybe brakes things.

Very curious, maybe I judt have missed the news. An update every now and the would be cool.

Kind regards
Fri Oct 21 2022, 20:18:14
(no subject) (by Paul)
For Solvespace in general there is a sort of high priority items list you can see by filtering on the 4.0 milestone here:

That's not written in stone and it changes from time to time. The next official version is also likely to be 3.2 ;-)

As for the NURBS issues specifically, there is no roadmap. To your concern about a dead-end, I believe the approach Solvespace uses for handling NURBS boolean operations is sound and with some effort we can eliminate most of the bugs. A lot of progress was made in that area a couple years ago and there are some excellent test cases for some of the remaining failures. We just need the time and motivation to get in there and figure out why those cases are failing. And by "we" I mean myself, ruevs, or some of the others who have looked at or contributed to the geometry code.

One specific test case for a NURBS regression is this:

That file works fine in Solvespace 2.3 but not the current version. I think it is also broken in version 3.0 but I'm not certain. I've never used git bisect, and the build instructions and dependencies have changed since verison 2.3 so it might be tricky. But if someone can do the bisection and find the specific commit that broke it that would be awesome - I suspect it was one of my commits to fix something else and I'd be able to track down the problem quickly if I knew which specific change broke it. I'm being lazy here and asking for help ;-) It may seem like a unique case, but every bug we fix usually helps some other sketches too.
Sat Oct 22 2022, 17:30:30
(no subject) (by ruevs)
I'm looking at this one currently it's a "typical" and very representative failure case. I should upload my test models and debugging code...
Sun Oct 23 2022, 04:36:31
(no subject) (by ruevs)
I can give no promises regarding time :-)
Sun Oct 23 2022, 04:37:52
(no subject) (by ruevs)
Here is some debugging code and test models .
Sun Oct 23 2022, 05:04:35
(no subject) (by thomas)
Thank you very much.

Mirror groups and loft are definetely desirable. <3
Great news that it can be solved and is not a dead end in any way.

I just read through the boolean file and while it was an interesting read especially the comments, sadly I can´t reconstruct much even with "sudo force understand".

However I'm a little stuck on a thought regarding the merge file. As I´ve read the curve is represented by linear segments that are inclusive in the curve while I thought it is the other way around (linear segments are exclusive). As I understand there is a tolerance applied to match the curve more closely. Now the question as these errors often happen in combination with linear segments: Is it possible that the applied tolerance somewhat offsets the curves start and ending points so that the linear segments don´t connect properly anymore so the surface fails because its essentially an open sketch? I got the feeling its somewhere close to line 97 :D
Sun Oct 23 2022, 18:05:56
(no subject) (by thomas)
* I meant combinations of curves and lines like in a fillet. Curve gets a tolerance offsetting points somehow while the line stays exact.
Sun Oct 23 2022, 18:10:43
(no subject) (by ruevs)
The more interesting function is at line 483

But it "drags in" most of the logic in
in one way or another.

There are cases where the chord tolerance is the culprit, but #1291 is not one of them.
Mon Oct 24 2022, 04:05:49
(no subject) (by thomas)

As far as I understand that the nurbs surfaces are created by

I doubt I can do much on these core principles. I would like to help and you can´t imagine how much it bothers me that I can´t jump right into it. Nevertheless I will try to get deeper into C++ as I need it for audio stuff too. That way I might be able to add some small features somewhere within 5 years.

Are there any documents on how SolveSpace works except the commented code? Any other recommended reads on the inner workings of cad programs maybe?
Mon Oct 24 2022, 13:58:43
Post a reply to this comment:
Your Name:
Your Email:
(no HTML tags; use plain text, and hit Enter for a line break)
Attached file (if you want, 5 MB max):
© 2008-2022 SolveSpace contributors. Most recent update June 2 2022.