Fri, 06/02/2023 - 15:43
Forums:
From testing I see that there is a lower bound on the fillet mesh resolution, the amount of quads used to represent a fillet this can be seen in the photos where i have used extreme values for the angular and linear deflection: 2000 mm and 3.1 rads respectively, yet the fillet still has 3 quads
I was wondering if there was a way of lowering this as we are using open cascade to mesh our parts from STEP file but we are finding that a lot of file space is dedicated to these 3 quad fillets.
Attachments:
Sat, 06/03/2023 - 00:39
What is the reason to use such a strange angular deflection 3.1 rads (almost 180 degrees)?
Do you need a fillet to be tessellated by only one quad?
May be you need to apply some defeaturing algorithm to your model, so that to remove fillets at all?
Tue, 06/06/2023 - 16:46
Hello sorry about the late response:
1) i used said angular deflection to prove to myself that there is a lower bound on the amount of faces that open cascade will use to represent the fillet
2) yes ideally i would like the fillet to be tessellated with rows of quads 1 quad tall I.e analogous to a 45° bevel
3) how would i make a defeaturing algorithm algorithm, is there one in open cascade?
Tue, 06/06/2023 - 16:48
This is what I want the filets to look like, this is generated by pixyz for reference btw
Wed, 06/07/2023 - 00:15
You can use BRepAlgoAPI_Defeaturing class. It can remove features if you tell to it which faces constitute them.
Thu, 06/08/2023 - 14:19
But is there a way to reduce the fillet geometry without removing the fillet entirely?
Fri, 06/09/2023 - 00:42
I think there is no in the current version of the algorithm.
Wed, 06/14/2023 - 16:10
So I am attempting to remove fillets from the model entirely as a temporary test however my code is giving me a null pointer exception, is it at all clear why this shouldn't work? I have tried to use https://dev.opencascade.org/doc/overview/html/occt_user_guides__modeling...
As guidence on how to use the BRepAlgoAPI_Defeaturing class
```
class SmallFeatureRemove
{
public:
SmallFeatureRemove(TopoDS_Shape theShape);
void perform();
TopoDS_Shape GetShape();
private:
TopoDS_Shape myShape;
BRepAlgoAPI_Defeaturing myDefeature;
};
SmallFeatureRemove::SmallFeatureRemove(TopoDS_Shape theShape): myShape(theShape)
{
myDefeature.SetShape(myShape);
}
void SmallFeatureRemove::perform()
{
TopTools_ListOfShape aFacesToRemove;
TopExp_Explorer explorer(myShape, TopAbs_FACE);
for (;explorer.More(); explorer.Next())
{
const TopoDS_Face& face = TopoDS::Face(explorer.Current());
Handle(Geom_Surface) surface = BRep_Tool::Surface(face);
// Create a GeomAdaptor_Surface object
GeomAdaptor_Surface adaptor(surface);
// Determine the type of the surface
GeomAbs_SurfaceType surfaceType = adaptor.GetType();
if (surfaceType == GeomAbs_BSplineSurface)
aFacesToRemove.Append(face);
}
myDefeature.AddFacesToRemove(aFacesToRemove);
myDefeature.Build();
myShape = myDefeature.Shape();
}
TopoDS_Shape SmallFeatureRemove::GetShape()
{
return myShape;
}
```
Thu, 06/15/2023 - 00:42
It depends on your particular shape and the faces you are going to remove. It is needed to analyze the shape and see what occurs in the algorithm.