I was confused by the slightly cumbersome selection and radius change mechanism of the Part fillet.
I made a test with a separate object and found that a chamfer between two edges is automatically extended if the angle is between 174.2705° and 180°. This means that the tesselation above can well be chamfered by simply selecting one segment:
This should lead to such a chamfered upper "arc":
Alas, this works only if the fillet radius is below 1mm, because a 1mm fillet would consume all of the adjacent edge, which is not allowed. Here we see it with a 0.9mm fillet, which still works but it gets already near the border.
Adding the other side of the sharp angle leads to a similar issue. If the fillet radius is above 0.42mm then the fillets from both sides of the sharp edge get in each others way:
Filleting with 0.4mm works around the object:
Any Suggestions for Chamfering Sharp Angles
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: Any Suggestions for Chamfering Sharp Angles
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
-
- Posts: 27
- Joined: Tue Sep 29, 2020 12:26 am
Re: Any Suggestions for Chamfering Sharp Angles
I tested some of it, and the corner is still two "straight" lines connecting instead of a curved line and a straight line, and so it might not be fixable by increasing number of points (unless it increases by a lot). One problem is that this object is one of many that is auto-generated from a gds2 file, and so fixing the models by hand is less than desirable.
Thanks for checking the fillet, I have not tried it yet. Straight edges are preferred here as the models deal with etched substrate layers, but having slightly curved edges could still give a good overview of the model. Should there be no solution with chamfer I will try this out.
Is there any way to chamfer just one edge of an object at a time inside of a try-except statement? Something like this pseudo code:
Code: Select all
edges = [1, 2, 3, 4, 5]
chamferObject = FreeCAD.Object("Chamfer")
try:
chamferObject.Edges = [edges[0], angle, height]
else:
Use a small chamfered box to subtract from the failed edge
recompute
for edgeNum in edges[1:]:
try:
chamferObject.Edges = chamferObject.Edges + [edgeNum, angle, height]
recompute
else:
Use a small chamfered box to subtract from the failed edge
recompute