dune3d / dune3d

3D CAD application
https://dune3d.org
GNU General Public License v3.0
825 stars 24 forks source link

Feature request: Chamfer and Fillet should be based on entities/extrude groups instead of geometry #98

Open jgeskens opened 3 weeks ago

jgeskens commented 3 weeks ago

Hi

First of all, let me say kudos for this wonderful software. The premise is genius and I would love to contribute to it within my capabilities.

I had the chance to extensively test the software with a fairly complex model. (>30 sketches)

My workflow is as follows; I design a part, including chamfers and fillets, and then 3D print it to check for tolerances. After adjusting the initial sketches with the distance constraints, almost all chamfers and fillets need to be "reconfigured" by clearing the edges and selecting them again. This is a very tiresome process and for me inhibits practical usage for "iterating on models".

After reading the documentation it became clear why. Chamfers and Fillets are based on the geometry, not the entities themselves.

I think this is a major design flaw and I am wondering how complicated it is to refactor. I can imagine, when you generate geometry from the entities, you can have some "tag" for identifying a line that became an edge, for example.

Is this kind of feature at all possible, or does it only require some amount of extra work? I ask this not knowing the inner details of your code, solvespace and opencascade.

Kind regards Jef

carrotIndustries commented 3 weeks ago

Yeah, I'd have also wished it was that way. It's just that I couldn't figure out how to

generate geometry from the entities, you can have some "tag" for identifying a line that became an edge, for example.

https://github.com/realthunder/FreeCAD_assembly3/wiki/Topological-Naming-Algorithm should give some hints but, so far I haven't been able to connect the dots to get that history information out of opencascade.

zwn commented 1 week ago

cadquery uses selectors to identify parts of geometry where to apply the next steps.