- Finding the fusion.
- Finding the (non-redundant) section edges, i.e. the edges at the interface between the objects, within the fusion.
- Performing the fillet itself on the section edges.
While section exists as a boolean operation, the edges that it returns have at their core different TShapes than those that are part of the fusion, and are necessary to make the fillet. To obtain those, we tried two methods: using BRepAlgoAPI_BooleanOperation::SectionEdges() within the C++ framework; and using generalFuse in Python. SectionEdges sometimes misses a few edges, especially the ones that were already there, or are parts of edges that were already there. Using generalFuse and then finding common edges between the "children" seems to be the way to go, but in one case I had a single vertex being returned as an edge, which might or might not affect the results.
Making the fillet itself also has its own bugs, ranging from the fillet creation simply failing to FreeCAD crashing. We suspect the redundant edges are again at play here.
DeepSOIC believes, and I agree, that due to these bugs, it is best to not incorporate them directly into the Part workbench, but to make a macro. By tonight or tomorrow I will create a simple macro for BlendedFusion for the rest of the community to play with and then we can decide whether or not to refine it, and maybe add other boolean operations too.