Skip to content
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

Add chamfer and fillet tools #577

Closed
Timmmm opened this issue Mar 30, 2020 · 12 comments
Closed

Add chamfer and fillet tools #577

Timmmm opened this issue Mar 30, 2020 · 12 comments

Comments

@Timmmm
Copy link
Contributor

Timmmm commented Mar 30, 2020

It should be possible to select an arbitrary set of edges in 3D, and then click "chamfer/fillet", and have it nicely modified. Sometimes you can do this in a sketch with arcs, but often it is very tedious or impossible.

Most professional CAD tools include these as basic operations. For some reason they are usually separate tools but I think it makes more sense to have it as one tool with a "chamfer style" option which is "straight" or "rounded" (and a radius option).

@whitequark
Copy link
Contributor

whitequark commented Mar 31, 2020

This is unlikely to ever happen. The only open-source backend that natively supports chamfers and fillets is OpenCASCADE, and it (a) has an incompatible license, and (b) is a rather poor quality codebase, since it exists to sell consulting services.

Although it would be technically possible to integrate OCE, it would create a situation where instead of a single version of SolveSpace limited in functionality there would be two versions of it, each inferior in its own regard, and so I am against doing so.

I've looked into extending SolveSpace's NURBS backend a few years ago, and my conclusion was that the amount of work was prohibitive for a volunteer-run open-source project, requiring several people employed full-time for multiple years.

@ruevs
Copy link
Member

ruevs commented Mar 31, 2020

Hmm... I've personally "seen" you answer this twice. Perhaps a FAQ is in order?

@whitequark
Copy link
Contributor

Good idea.

@Timmmm
Copy link
Contributor Author

Timmmm commented Mar 31, 2020

That is a shame!

@whitequark
Copy link
Contributor

Yes, it's really unfortunate. A few years ago I was working much more closely on SolveSpace together with one full-time developer (@Evil-Spirit), and based on our discussions back then, I believe this is just not feasible for this project at this time.

@Timmmm
Copy link
Contributor Author

Timmmm commented Apr 1, 2020

What were the main problems, just out of interest?

@whitequark
Copy link
Contributor

Mostly it's just a lot of work to handle every possible case, and it's also work that needs to be done either with someone specializing in NURBS, or someone willing to invest a lot of time to learn the necessary math. I'm really happy to have @phkahler on board, who has been able to make very nice improvements to the NURBS code, but features like chamfers or fillets require a lot more effort to work well.

@phkahler
Copy link
Member

phkahler commented Apr 3, 2020

@Timmmm I can suggest reading the entire thread for issue #453 to get a little understanding of the issues.

There are several problems, the primary one being the way surfaces and entities are represented internally be SolveSpace. Surfaces are completely separate from the editable/constrainable entities you can interact with. When you do an extrude or other operation that creates a solid volume, the new entities are created separately from the surfaces. When entities are dragged new surfaces are created. This disconnect means that the first problem for a generalized fillet or chamfer tool is to identify which surfaces are going to be modified by the operation - it might be possible, but internally it's not set up for that.

The more conventional challenges are defining how existing surfaces need to be trimmed for the new edge features, figuring out what to do at corners (there are many special cases and different ways to cut there), and making sure there is proper continuity along the chamfer with regard to the U,V coordinates interpolated along both edges. There are a lot of papers written on this stuff, so we could pick something and try but then we end up facing the problem of SS internal representation that makes these things harder.

Having said all that, I was working on some new tools that may work for some of the more common use cases. These will all work at the time of extrusion and include: adding draft angles to an extrusion, adding a chamfer of fillet to the top or bottom of an extrusion, and possibly a frustum tool. The issues with those (except frustum) is that the entities will not take on the new geometry of the surfaces. In some cases that's fine while in others it's not. I hope to get back to that effort to see what can be worked out.

@fortinmike
Copy link

fortinmike commented Dec 7, 2020

That is indeed a shame :(

For my personal (beginner) maker needs, it looks like fillets and chamfers are the only tools missing in Solvespace for me to make the designs I have in mind, which is mostly small objects and mechanical parts for 3D printing. That's too bad because I like Solvespace quite a bit! Much nicer to use (and more stable) than FreeCAD in my opinion. The workflow and keyboard shortcuts are just great.

@phkahler I'd be very interested in tools to provide some fillet / chamfer capability even if it's not the "real deal". Consider this a +1 from me! Are you still working on this to some extent?

@phkahler
Copy link
Member

phkahler commented Dec 7, 2020

@fortinmike After v3.0 is done I want to get back to making new construction tools. I'm not sure which ones will make it but everything I've mentioned in various threads is still on my mind.

@pinpox
Copy link

pinpox commented Mar 8, 2023

@fortinmike After v3.0 is done I want to get back to making new construction tools. I'm not sure which ones will make it but everything I've mentioned in various threads is still on my mind.

3.1 is out, any news on adding fillet/chamfer tools?

@ruevs
Copy link
Member

ruevs commented Mar 9, 2023

#149 for cross reference.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants